资讯动态

Winform创建与启动

发布时间:2026/10/18 10:03:25 来源:尧图企业网站定制
拖动一个控件到窗体VS 自动在xxx.Designer.cs生成的都有什么第一步 声明控件字段定义一个代表该控件的私有变量private System.Windows.Forms.ListBox listBox1;新版.NET可以直接写,因为已经引用了System.Windows.Forms命名空间private Button button1;作用让整个窗体类都能调用这个控件因为如果只new只能是局部变量而这个字段是类全局可用第二步InitializeComponent()里new 实例this.listBox1new System.Windows.Forms.ListBox();作用创建一个控件对象没有控件对象什么都做不了第三步 自动赋值默认属性自动生成一堆属性默认值如果在窗体改这里会自动同步// 1. 基础通用属性所有控件都有 this.listBox1.Location new System.Drawing.Point(30, 30); this.listBox1.Size new System.Drawing.Size(120, 150); this.listBox1.BackColor System.Drawing.Color.White; this.listBox1.ForeColor System.Drawing.Color.Black; this.listBox1.Font new System.Drawing.Font(微软雅黑, 9F); this.listBox1.Enabled true; this.listBox1.Visible true; this.listBox1.Name listBox1; // 2. ListBox 独有专属属性 this.listBox1.SelectionMode System.Windows.Forms.SelectionMode.One; this.listBox1.Sorted false; this.listBox1.MultiColumn false;第四步 把控件加入窗体的控件集合this.Controls.Add(this.listBox1);不加这一行就算你 new 了、设了属性窗体上也看不见原理窗体Form本质是一个大容器所有按钮、输入框、列表框都存在Controls集合里加进去才会渲染显示。如果是拖进 Panel / GroupBox就会变成panel1.Controls.Add(listBox1);(非必须)布局、资源、初始化收尾InitializeComponent()作用// 布局适配 this.listBox1.Anchor System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left; this.listBox1.TabIndex 1; // 如果后续你绑定了事件还会自动加 // this.listBox1.SelectedIndexChanged new EventHandler(xxx);InitializeComponent()是窗体控件的组件初始化入口方法1.控件实例化new 控件对象2.设置控件的基础属性大小文本样式等3.绑定控件事件4.把控件添加到窗体/父容器事件绑定方式 A通过 Visual Studio 设计器最常用在设计视图中选中控件。在“属性”窗口点击闪电图标。找到目标事件如Click双击右侧空白处。VS 会自动生成方法并在InitializeComponent()中完成绑定。方式 B手动代码绑定如果你需要动态创建控件或在运行时更改逻辑可以使用运算符public partial class MainForm : Form { public MainForm() { InitializeComponent(); // 手动订阅事件 myButton.Click new EventHandler(MyButton_Click); } // 事件处理程序 private void MyButton_Click(object sender, EventArgs e) { MessageBox.Show(按钮被点击了); } }所有控件通用的核心属性外观位置状态1.Name控件的名字代码里用它找到控件例listBox12.Text控件显示的文字ListBox 里很少用主要给 Button/Label 用3.SizeWidth / Height控件的宽度、高度4.LocationX / Y控件在窗体上的坐标位置5.Enabledtrue可用false灰色、不可点击6.Visibletrue显示false隐藏7.BackColor背景颜色8.ForeColor文字颜色9.Font字体、字号、加粗、斜体10.Cursor鼠标移上去的指针样式箭头、手型、等待11.Dock停靠方式置顶、置底、填充满、靠左、靠右12.Anchor窗体缩放时控件跟着哪一边固定13.Margin控件与其他控件的间距14.Padding控件内部内容的边距15.TabIndex按 Tab 键切换焦点的顺序16.TabStop是否允许按 Tab 键选中这个控件17.ContextMenuStrip右键菜单18.Tag万能备用属性存任何数据不显示、不影响功能所有控件通用的常用事件1.Click鼠标单击时触发2.DoubleClick鼠标双击时触发3.MouseEnter鼠标进入控件区域时4.MouseLeave鼠标离开控件区域时5.MouseDown鼠标按键按下时6.MouseUp鼠标按键松开时7.MouseMove鼠标在控件上移动时8.KeyDown键盘按键按下时控件有焦点才触发9.KeyUp键盘按键松开时10.KeyPress按下字符键时输入文字用11.Enter控件获得焦点时Tab 切过来 / 鼠标点中12.Leave控件失去焦点时13.Resize控件大小改变时14.Paint控件重绘时自定义画外观15.GotFocus / LostFocus得到焦点 / 失去焦点老版本事件现在用 Enter/Leave所有控件通用的状态变化事件只要属性变了就触发所有控件都有BackColorChanged背景色变了ForeColorChanged文字色变了FontChanged字体变了SizeChanged大小变了LocationChanged位置变了EnabledChanged可用状态变了VisibleChanged显示隐藏变了DockChanged停靠变了CursorChanged鼠标样式变了正确删除控件的流程不会报错选中控件 → 按 Delete打开Form1.Designer.cs搜索控件名字如 button1把剩下的残留代码全部删掉变量声明事件绑定回到Form1.cs把事件方法也删掉只在界面删控件✅ 删new、位置、大小、样式、Controls.Add❌ 剩控件声明、事件绑定、事件方法、你手写的访问代码listBox独有属性1.SelectionMode作用设置列表的选择模式可选值None不能选One只能选 1 项默认MultiSimple简单多选点一下选 / 取消MultiExtended高级多选Ctrl/Shift 多选2.MultiColumn作用是否开启多列显示开启后内容多了会自动横向排列生成一个横向的滑动条而不是竖向的而不是一直往下滚3.ColumnWidth作用多列模式下设置每一列的宽度必须配合MultiColumn true使用固定一列的宽度4.HorizontalScrollbar作用是否显示水平滚动条内容太长超出宽度时才会出现5.ScrollAlwaysVisible作用无论内容多少永远显示垂直滚动条占位用6.Sorted作用是否让列表项自动按字母排序设为 true 后添加项会自动排序7.DrawMode作用设置列表项的绘制模式可选Normal正常系统绘制OwnerDrawFixed自定义固定高度OwnerDrawVariable自定义每一项不同高度8.ItemHight作用设置每一项的高度只有DrawMode不是 Normal 时才有效9.UseTabStops作用是否让列表项支持\t制表符对齐很少用但确实是独有listBox独有事件1.SelectedIndexChanged触发时机选中项的索引改变时用途最常用用户点了不同项你在这里写逻辑2.SelectedValueChanged触发时机选中项的 Value 值改变时用途数据绑定场景用比如绑定 ID / 文本3.DrawItem触发时机每一项被绘制时用途自定义每一项的颜色、图标、字体、样式4.MeasureItem触发时机计算每一项高度时用途自定义每一项高度多行文本、大项5.ItemCheck触发时机项的勾选状态即将改变时用途拦截勾选、判断是否允许勾选6.ItemChecked触发时机项的勾选状态已经改变后用途勾选后执行逻辑统计、更新listBox独有方法1.SetSelected(index, true/false)用代码选中 / 取消某一项2.ClearSelected()取消所有选中3.FindString()根据文字查找项的索引4.FindStringExact()精确查找文字5.GetSelected(index)判断某一项是否被选中

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑