当前位置: 首页 > news >正文

WinForm常用组件

WinForm常用组件

一、核心交互组件

1、Button(按钮)

image

触发操作的入口

核心属性

  • Text:按钮文字

  • Name:控件的名称

  • Enabled:是否可点击

  • BackColor:背景颜色

主要事件

  • Click:用户点击按钮时触发

2、TextBox(输入框)

image

用户输入数据

核心属性

  • Text:输入内容

  • PasswordChar:密码模式

  • Multiline:多行

  • ReadOnly:只读

  • Font:文本字体

  • ForeColor/ BackColor:文本和背景颜色

主要事件

  • TextChanged:当文本框中的文本改变时触发

  • KeyDown/KeyPress/KeyUp:键盘事件

  • Enter/Leave:当控件获得或失去焦点时触发

3、Label(标签)

image

展示信息

核心属性

  • Text:设置或获取标签显示的文本

  • AutoSize:是否自动调整大小以适应内容

  • ForeColor:文本颜色

  • BorderStyle:边框样式

主要事件

  • 基本不用(偶尔 Click

二、选择类组件

4、ComboBox(下拉框)

image

单选 + 可输入

核心属性

  • Items:字符串的集合,通过 Items.Add() 方法添加项

  • SelectedItem:当前选中的项(对象类型)

  • SelectedIndex:当前选中项的索引(从 0 开始,-1 表示未选择)

  • SelectedValue:获取绑定对象的值

  • DataSourceList<对象>集合

    • DisplayMember:设置显示属性
    • ValueMember:绑定值,只有通过ValueMember绑定,SelectedValue才能获取

主要事件

  • SelectedIndexChanged:当选中项改变时触发

5、RadioButton(单选按钮)

image

同一个容器内,互斥选择

核心属性

  • Checked:获取或设置按钮是否被选中

  • Text:设置按钮显示的文本内容

  • Appearance:控制显示样式

    • Normal:标准单选按钮
    • Button:类似按钮的样式

主要事件

  • CheckedChanged:选中状态变化时触发

  • Click:设置Appearance值为Button时使用

6、CheckBox(复选框)

image

多选

核心属性

  • Checked:设置默认被选中

  • CheckState:三态模式下的状态(选中、未选中、不确定)
    image

主要事件

  • Checked

三、列表类组件

7、ListBox(列表)

image

展示列表 + 单/多选

核心属性

  • ItemsListBox 的项目集合(通过 Items.Add() 方法添加项)

  • SelectedItem:当前选中的项(对象类型)

  • SelectedIndex:当前选中项的索引(从 0 开始,-1 表示未选择),可设置默认显示

  • DataSourceList<对象>集合

    • DisplayMember:设置显示属性
    • ValueMember:绑定值,只有通过ValueMember绑定,SelectedValue才能获取

主要事件

  • SelectedIndexChanged:当选中项改变时触发

  • SelectedValueChanged:当 SelectedValue 属性改变时触发

8、CheckedListBox(复选框列表)

image

带勾选的列表

核心属性

  • Items:获取CheckedListBox项目集合

  • CheckOnClick:控制单击行为,true时单击项直接切换选中状态;false时需双击切换(默认行为)

注意: 也可使用ListBox的属性

主要事件

  • ItemCheck:勾选状态变化时触发,可通过e.NewValue获取新状态

可通过checkedListBox1.ItemsAdd()Insert()Remove()RemoveAt()方法进行添加插入删除

四、显示类组件

9、PictureBox(图片)

image

显示图片 / 动画

核心属性

  • Image:设置或获取显示的图像对象

  • SizeMode:控制图像显示模式

    • Normal:原始大小(可能超出控件范围)
    • StretchImage:拉伸填充控件
    • AutoSize:控件自动调整为图像大小
    • CenterImage:居中显示(不缩放)
    • Zoom:等比例缩放以适应控件

保存和加载图片

image

private void LoadImageFromFile()
{OpenFileDialog openFileDialog = new OpenFileDialog{Filter = "图像文件|*.jpg;*.jpeg;*.png;*.bmp;*.gif"};if (openFileDialog.ShowDialog() == DialogResult.OK){try{pictureBox1.Image = Image.FromFile(openFileDialog.FileName);// 保存路径到设置 LastImagePath 手动创建Properties.Settings.Default.LastImagePath = openFileDialog.FileName;Properties.Settings.Default.Save();}catch (Exception ex){MessageBox.Show($"加载失败: {ex.Message}");}}
}
// 加载窗体时设置图片
private void Form3_Load(object sender, EventArgs e)
{if (!string.IsNullOrEmpty(Properties.Settings.Default.LastImagePath)){try{if (File.Exists(Properties.Settings.Default.LastImagePath)){pictureBox1.Image = Image.FromFile(Properties.Settings.Default.LastImagePath);}}catch (Exception ex){MessageBox.Show($"加载上次图片失败: {ex.Message}");}}
}

10、LinkLabel(超链接)

image

跳转 / 打开网页

核心属性

  • Text:设置显示的链接文本

  • LinkBehavior:链接行为控制

  • Links:管理链接区域的核心集合(可定义多个链接区域)

  • LinkColor/ActiveLinkColor/VisitedLinkColor:控制链接的不同状态颜色

主要事件

  • LinkClicked:用户点击链接时触发

使用示例:

private void CreateLinkLabels(){// 设置文本linkLabel1.Text = "访问 微软 或 百度 或 联系我们";// 添加第一个链接("微软")linkLabel1.Links.Add(3, 2, "https://www.microsoft.com");// 添加第二个链接("谷歌")linkLabel1.Links.Add(8, 2, "https://www.baidu.com");// 添加第三个链接("联系我们")linkLabel1.Links.Add(12, 4, "mailto:support@example.com");// 设置链接颜色linkLabel1.LinkColor = Color.Blue;linkLabel1.VisitedLinkColor = Color.Purple;}private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){// 示例:显示链接信息MessageBox.Show($"点击了链接: {e.Link.LinkData}", "提示");string protocol = e.Link.LinkData.ToString().Split(':')[0];switch (protocol){case "mailto":// 调用邮件客户端Process.Start($"mailto:{e.Link.LinkData.ToString().Substring(7)}");break;case "tel":// 调用拨号程序Process.Start($"tel:{e.Link.LinkData.ToString().Substring(4)}");break;default:// 默认网页打开Process.Start(new ProcessStartInfo(e.Link.LinkData.ToString()) { UseShellExecute = true });break;}e.Link.Visited = true;}

五、时间与系统组件

11、Timer(定时器)

image

做动画 / 自动执行

基本特性

  • 线程模型:运行在 UI 线程(主线程),Tick 事件在 UI 线程触发

  • 精度:最小间隔约 55 毫秒(受 Windows 消息循环影响)

  • 适用场景:UI 更新、不需要高精度的定时操作

核心属性

  • IntervalTick 事件之间的时间间隔

  • Enabled:获取或设置定时器是否正在运行

主要事件

  • Tick:每次间隔时间到达时触发的事件

重要方法

  • Start():启动定时器

  • Stop():停止定时器

12、DateTimePicker(日期和时间)

image

日期时间选择

核心属性

  • Value:获取或设置当前选中的日期时间

  • Format:控制显示格式

主要事件

  • ValueChanged:日期时间值变化时触发

六、菜单与工具栏

13、MenuStrip(菜单)

image

顶部菜单

核心特性

  • 动态渲染:支持Office 2007+风格的Ribbon菜单样式

  • 多级嵌套:可创建无限级子菜单

  • MDI支持:内置对多文档界面的支持

  • 自定义扩展:支持自定义渲染器和快捷键绑定

核心属性

  • Items:菜单项的集合

  • ShortcutKeys:为菜单项设置快捷键,例如 Alt+FCtrl+N

主要事件

  • Click:单机触发事件

14、ToolStrip(工具栏)

image

快捷操作栏

核心属性

  • Items:项目集合

  • Dock:设置停靠位置 (Top, Bottom, Left, Right)

主要事件

  • Click:单机触发事件

15、StatusStrip(状态栏)

image

底部状态信息

核心属性

  • Dock:控制StatusStrip的停靠位置,默认值为Bottom,即停靠在窗口的底部

  • Items:表示StatusStrip中包含的所有子控件的集合

总结:WinForm = 控件(属性) + 事件驱动(用户操作触发逻辑)

http://www.jsqmd.com/news/529831/

相关文章:

  • 计算机毕业设计springboot蔬菜种植园管理系统 基于SpringBoot的果蔬生产基地数字化管理平台 智慧农场蔬菜种植全过程追溯系统
  • CANoe E2E校验:自定义Checksum算法在CAPL中的实现与验证
  • 用python实现一个查询当天天气的MCP服务器
  • 3大核心优势:为什么Snipe-IT能彻底改变你的IT资产管理混乱局面
  • 若依微服务框架中PDF文件上传与预览的实战配置与避坑指南
  • 【原创】ERTEC 系列 PROFINET 芯片级硬件过滤器分析
  • 数据可视化神器:Tableau在大数据分析中的应用全解
  • FireRedASR-AED-L模型开发环境配置终极指南:从Anaconda到PyCharm
  • GitHub 中文界面解决方案:让代码协作更高效
  • 深度学习中的多尺度与多粒度:别再傻傻分不清了!
  • 3DS文件传输革新:多设备无线管理的终极解决方案
  • ExtractorSharp:一站式游戏资源编辑工具,高效解锁游戏开发新境界
  • 家庭NAS玩家必备:用iperf精准诊断WiFi6路由器的真实传输性能(附安卓/PC端配置指南)
  • 用过才敢说!盘点2026年标杆级的AI论文写作软件
  • Ubuntu 22.04下Intel MKL FFTW接口配置全攻略(附避坑指南)
  • 基于深度学习的毕业设计:从选题到部署的完整技术路径解析
  • 测试四象限:构造支持团队的有效测试策略
  • 下载链接
  • Windows下用Rclone挂载阿里云OSS到本地盘符的完整指南(含自动挂载脚本)
  • 卷包设备工控机断电软关机时序控制系统设计
  • Modelsim10.5_se在Win11系统下的安装与破解全流程指南
  • OFA图像描述模型Mathtype公式识别探索:从截图到LaTeX代码的桥梁
  • Yuzu模拟器性能调优:从新手到高手的进阶之路
  • 如何快速检测存储设备真实容量:F3工具的完整使用指南
  • 图图的嗨丝造相-Z-Image-Turbo实战教程:结合IP-Adapter实现指定人物形象+渔网袜风格融合
  • 游戏自动化效率提升:ok-ww图像识别技术如何重构玩家体验
  • 别再复制粘贴了!用Python GMSSL v3.2.1实现SM4加密,这3个坑我帮你踩过了
  • STM32项目文档自动化分析:CasRel抽取硬件模块关联
  • WorkBuddy实测:小白也可以养虾啦!(附实操案例)
  • C99 vs C11 vs C23:手把手教你升级代码到最新标准