Files
IOT_SIM/runtime/Sim.WinForms/Forms/Enums.cs
T
xuyueandClaude Opus 5.5 98be8331bc 第 0 阶段:教材项目 2 任务 1 在网页中原样运行
- runtime:仿真 WinForms 子集(Form、Button、Label、TextBox、ComboBox、
  GroupBox、Timer、MessageBox、界面线程消息循环、跨线程检查)、
  教材设备类库(DeviceCtrlHelper、LED 控件)、运行器(常驻编译服务 + 运行模式)
- server:Bun + Hono,WebSocket 会话,每次运行一个进程,消息转发
- web:Vue + Naive UI,WinForms 风格窗体渲染、MessageBox、实训台 LED 屏
- 端到端测试与 100 个程序并发的压力测试
- 教材逐任务摘要(docs/教材摘要)

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

101 lines
3.3 KiB
C#

// WinForms 中设计器代码和教材代码会用到的枚举与结构体,取值与 .NET Framework 一致。
using System;
namespace System.Windows.Forms;
public enum AutoScaleMode { None, Font, Dpi, Inherit }
public enum FormBorderStyle { None, FixedSingle, Fixed3D, FixedDialog, Sizable, FixedToolWindow, SizableToolWindow }
public enum FormStartPosition { Manual, CenterScreen, WindowsDefaultLocation, WindowsDefaultBounds, CenterParent }
public enum FormWindowState { Normal, Minimized, Maximized }
public enum DialogResult { None, OK, Cancel, Abort, Retry, Ignore, Yes, No, TryAgain = 10, Continue = 11 }
public enum MessageBoxButtons { OK, OKCancel, AbortRetryIgnore, YesNoCancel, YesNo, RetryCancel, CancelTryContinue }
public enum MessageBoxIcon
{
None = 0,
Hand = 16,
Stop = 16,
Error = 16,
Question = 32,
Exclamation = 48,
Warning = 48,
Asterisk = 64,
Information = 64,
}
public enum MessageBoxDefaultButton { Button1 = 0, Button2 = 256, Button3 = 512, Button4 = 768 }
public enum FlatStyle { Flat, Popup, Standard, System }
public enum BorderStyle { None, FixedSingle, Fixed3D }
public enum ScrollBars { None, Horizontal, Vertical, Both }
public enum ComboBoxStyle { Simple, DropDown, DropDownList }
public enum DockStyle { None, Top, Bottom, Left, Right, Fill }
[Flags]
public enum AnchorStyles { None = 0, Top = 1, Bottom = 2, Left = 4, Right = 8 }
public enum ImeMode { Inherit = -1, NoControl = 0, On = 1, Off = 2, Disable = 3 }
public enum RightToLeft { No, Yes, Inherit }
[Flags]
public enum MouseButtons { None = 0, Left = 0x100000, Right = 0x200000, Middle = 0x400000, XButton1 = 0x800000, XButton2 = 0x1000000 }
public enum CloseReason { None, WindowsShutDown, MdiFormClosing, UserClosing, TaskManagerClosing, FormOwnerClosing, ApplicationExitCall }
public struct Padding : IEquatable<Padding>
{
public static readonly Padding Empty = new(0);
public Padding(int all) : this(all, all, all, all) { }
public Padding(int left, int top, int right, int bottom)
{
Left = left;
Top = top;
Right = right;
Bottom = bottom;
}
public int Left { get; set; }
public int Top { get; set; }
public int Right { get; set; }
public int Bottom { get; set; }
public int All
{
get => Left == Top && Top == Right && Right == Bottom ? Left : -1;
set => Left = Top = Right = Bottom = value;
}
public int Horizontal => Left + Right;
public int Vertical => Top + Bottom;
public bool Equals(Padding other) => Left == other.Left && Top == other.Top && Right == other.Right && Bottom == other.Bottom;
public override bool Equals(object? obj) => obj is Padding other && Equals(other);
public override int GetHashCode() => HashCode.Combine(Left, Top, Right, Bottom);
public static bool operator ==(Padding a, Padding b) => a.Equals(b);
public static bool operator !=(Padding a, Padding b) => !a.Equals(b);
public override string ToString() => $"{{Left={Left},Top={Top},Right={Right},Bottom={Bottom}}}";
}
/// <summary>窗口句柄接口;MessageBox.Show(owner, ...) 的 owner 参数类型</summary>
public interface IWin32Window
{
IntPtr Handle { get; }
}
public interface IButtonControl
{
DialogResult DialogResult { get; set; }
void NotifyDefault(bool value);
void PerformClick();
}