Files
IOT_SIM/runtime/Sim.WinForms/Forms/EventArgs.cs
T
xuyueandClaude Opus 5.5 d60868d912 停靠布局、背景图片、无边框窗体;运行区按比例缩小、可放大
- Dock:和 WinForms 一样按 Controls 倒序依次停靠,扣掉 Panel 边框、GroupBox 标题占的地方;
  改大小、显示隐藏、加入移出控件时重新布局;SuspendLayout / ResumeLayout / PerformLayout
- 设计器里每次修改后按同样的规则排好停靠的控件(designer/layout.ts);属性窗口加"停靠"
- BackgroundImage + BackgroundImageLayout(平铺、居中、拉伸、缩放):窗体、面板、图片框,
  设计器里从项目资源选;无边框窗体没有标题栏,大小不含边框
- 背景色沿用父控件:没设背景色的标签、面板、分组框等画父控件的背景色(不是背景图片),
  和 WinForms 一样;分组框标题处边框断开、透出背景;文本框的 BackColor 生效
- 图片框可以放子控件,把鼠标按下、松开发给程序
- 运行区:窗体比运行区大时整体按比例缩小并显示比例;"放大"占满整个网页(窗体在左、实训台在右),Esc 还原
- Paint 事件:VS 双击面板生成的空 panel1_Paint 能编译(平台由浏览器绘制,不触发)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 15:14:34 +08:00

61 lines
1.7 KiB
C#

using System;
using System.ComponentModel;
namespace System.Windows.Forms;
public class MouseEventArgs : EventArgs
{
public MouseEventArgs(MouseButtons button, int clicks, int x, int y, int delta)
{
Button = button;
Clicks = clicks;
X = x;
Y = y;
Delta = delta;
}
public MouseButtons Button { get; }
public int Clicks { get; }
public int X { get; }
public int Y { get; }
public int Delta { get; }
public System.Drawing.Point Location => new(X, Y);
}
public delegate void MouseEventHandler(object? sender, MouseEventArgs e);
public class FormClosingEventArgs : CancelEventArgs
{
public FormClosingEventArgs(CloseReason closeReason, bool cancel) : base(cancel) => CloseReason = closeReason;
public CloseReason CloseReason { get; }
}
public delegate void FormClosingEventHandler(object? sender, FormClosingEventArgs e);
public class FormClosedEventArgs : EventArgs
{
public FormClosedEventArgs(CloseReason closeReason) => CloseReason = closeReason;
public CloseReason CloseReason { get; }
}
public delegate void FormClosedEventHandler(object? sender, FormClosedEventArgs e);
/// <summary>重绘事件的参数。平台由浏览器绘制控件,不支持在 Graphics 上自己画</summary>
public class PaintEventArgs : EventArgs, IDisposable
{
public PaintEventArgs(System.Drawing.Graphics graphics, System.Drawing.Rectangle clipRect)
{
Graphics = graphics;
ClipRectangle = clipRect;
}
public System.Drawing.Graphics Graphics { get; }
public System.Drawing.Rectangle ClipRectangle { get; }
public void Dispose() => GC.SuppressFinalize(this);
}
public delegate void PaintEventHandler(object? sender, PaintEventArgs e);