- 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>
61 lines
1.7 KiB
C#
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);
|