news 2026/6/15 17:01:50

C#基础--Windows Form基础:按钮、事件多播、PictureBox图片控件、Panel控件、代码创建控件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#基础--Windows Form基础:按钮、事件多播、PictureBox图片控件、Panel控件、代码创建控件

01按钮事件

按钮使用的是Button

Button 常用的属性有:

1 UseWaiCursor: 是否使用 等待鼠标类型

2 backgroundImage: 背景图

3 backgroundImagelayout: 背景图分布方式:

tile:如果图片过小生成多张图片; stretch拉伸图片以适应控件大小; zoom按照图像原比例进行缩放图片

4 TextAlign: 对齐的方式

5 Dock 控件的停靠方式 设置处于父控件的哪个方向 top: 处于父控件上面

事件: 触发函数的行为 例如在点击的时候调用一个函数 需要给按钮绑定一个点击事件
事件也有很多种类 鼠标的点击事件,输入框的textbox的TextChanged文本输入事件,键盘事件等等

label的点击事件

private void label1_Click(object sender, EventArgs e) { }

按钮的点击事件

1 直接点击窗体上的按钮 2 按钮界面闪电标识符号找到对应事件名 点击生成一个事件

private void button1_Click(object sender, EventArgs e) { //textBox1.Text 输入框的文本内容 //label2.Text label2的文本 label2.Text = textBox1.Text; }

输入的文本

private void textBox1_TextChanged(object sender, EventArgs e) { //输入文本的时候触发 label2.Text = textBox1.Text; }

Form界面

事件多播

可以对一个控件通过使用+=或者-=进行添加事件或者删除事件

绑定事件也可以代码进行事件绑定

button1 绑定button3_Click方法 button3也是绑定了button3_Click方法 事件函数sender就是可变的

Click 点击事件

this.button1.Click += button3_Click; this.button2.Click += new System.EventHandler(button3_Click);//button2绑定了button3_Click方法

按钮3的绑定事件

private void button3_Click(object sender, EventArgs e) { //参数1 object sender;代表当前点击对象 例如目前sender就是button3 一般使用sender必须强制转换指定控件类型 //参数2 EventAtgs e ; 获取当前事件对象包含当前事件的一些信息 Button b1 =(Button)sender; //第一种 获取当前点击的按钮的标题 MessageBox.Show(button3.Text); //第二种 方法获取标题 MessageBox.Show(b1.Text+e.ToString()); }

Button4 添加事件

private void button4_Click(object sender, EventArgs e) { this.button1.Click += button6_Click;//给按钮1绑定一个button6_Click的方法 this.button3.Click += button6_Click; }

Button5 移除事件

private void button5_Click(object sender, EventArgs e) { this.button1.Click -= button6_Click;// 给按钮1移除一个 button6_Click的方法 this.button3.Click -= button6_Click; }

Button6 点击弹窗的功能

private void button6_Click(object sender, EventArgs e) { MessageBox.Show("永恒燃烧的羽翼,带我脱离凡间的沉沦"); }

Form界面

PictureBox图片控件

PictureBox是一个展示图片的控件

在属性列表里可以在Image里添加你想要展示的图片

展示网络图片

this.pictureBox1.Load("http://hs1-f2.v3mh.com/image/220926/Rs94nKoSY.webp-w750.jpg");

切换图片

可以添加多张图片使用Button控件切换图片

定义一个count

int count = 1;

切换图片的按钮方法

private void button1_Click(object sender, EventArgs e) { count++; //Image.FromFile 加载图片 this.pictureBox1.Image = Image.FromFile("E:\\from图片\\"+count+".png"); if (count==8) { count = 0; } }

可以通过if判断来重新展示图片

Panel控件

可以添加两个Panel控件来相互切换

切换到panel2

private void button1_Click(object sender, EventArgs e) { //让panel1隐藏 panel2显示 //this.panel1.Visible = false;//Visible 控制控件是否可见 false是不可见 true是可见 //this.panel2.Visible = true; this.panel2.BringToFront();//把panel2带到前面 this.panel1.SendToBack();//把panel1放到最后面 }

切换到panel1

private void button2_Click(object sender, EventArgs e) { //让panel2隐藏 panel1显示 //this.panel1.Visible = true; //this.panel2.Visible = false; this.panel1.BringToFront();//把panel1带到前面 this.panel2.SendToBack();//把panel2放到最后面 }

Form界面

代码创建控件

Form窗体的标题属性更改

this.Text = "Hello"; 窗体的标题属性

代码创建一个Button控件

1 创建一个button对象

Button btn1 = new Button();

2 设置按钮的属性和样式

btn1.BackColor = Color.Red; //背景颜色 btn1.Text = "进入"; //按钮的文本内容 btn1.ForeColor= Color.Green; //字体的颜色 FontFamily f1 = new FontFamily("宋体");//创建一个楷体字体 btn1.Font = new Font(f1,16,FontStyle.Bold);//设置字体为楷体类型 字号为16 加粗字体 btn1.Size = new Size(200,100);//设置button的大小 //btn1.Location = new Point(200, 100);// 修改button的位置 this.DoubleClick += Form1_DoubleClick; btn1.Image = Image.FromFile("1.png");//添加图标 btn1.ImageAlign =ContentAlignment.MiddleLeft;//设置图标对齐方式

3 添加到指定控件

this当前窗体对象 包含了窗体的图标属性 窗体的标题属性 Controls窗体的所有的控件对象

this.Controls.Add(btn1);

例子

创建10个panel 每个panel里面显示图片和label

for (int i = 0; i < 10; i++) { Panel panel = new Panel(); //panel.BackColor =Color.Red;//设置背景颜色 panel.Size = new Size(100,200);//设置panel的大小 宽100 高200 panel.Location = new Point(110*i+20,0); panel.BorderStyle = BorderStyle.FixedSingle;//设置边框 有边框了背景颜色就不需要了 //添加图片到panel上 PictureBox pd = new PictureBox(); pd.Image = Image.FromFile("1.png"); pd.Size = new Size(80,80); pd.SizeMode = PictureBoxSizeMode.StretchImage;//拉伸图片 pd.Left = 10;//设置子控件左边的距离 距离父控件的左边距离 panel.Controls.Add(pd);//添加图片到panel上 //创建一个label对象 Label label = new Label(); label.Text ="嘉贝莉娜"; label.Left = 8; label.Location = new Point(10,120); panel.Controls.Add(label); this.Controls.Add(panel);//窗体上添加panel }

Form界面

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:30:28

用AI升级你的Notepad++:智能代码补全与错误检测

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Notepad插件&#xff0c;集成AI代码补全和错误检测功能。插件应支持多种编程语言&#xff0c;能够根据上下文提供智能建议&#xff0c;实时标记语法错误&#xff0c;并提供…

作者头像 李华
网站建设 2026/6/15 11:28:27

AI如何帮你一键生成TCPING测试工具?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请开发一个TCPING网络测试工具&#xff0c;功能包括&#xff1a;1.支持输入目标IP和端口号 2.实现TCP三次握手检测 3.显示每次连接的延迟时间 4.统计成功率 5.输出简洁的测试报告。…

作者头像 李华
网站建设 2026/6/15 11:29:27

企业级Redis管理实战:AnotherRedisDesktopManager应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个企业级Redis管理工具&#xff0c;支持集群管理、批量操作、数据导入导出、慢查询分析等功能。要求提供权限管理模块&#xff0c;支持多用户协作&#xff0c;操作日志记录&…

作者头像 李华
网站建设 2026/6/15 1:16:08

小白必看:WAN2.2网络技术入门指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作交互式WAN2.2学习应用&#xff0c;包含&#xff1a;1. 动画演示数据包传输过程 2. 可调节参数的简单网络拓扑实验 3. 术语词典弹出式解释 4. 知识测验系统 要求使用Vue3SVG动画…

作者头像 李华
网站建设 2026/6/15 11:29:08

iTerm2高级技巧:SSH管理、分屏与自动化

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个iTerm2增强工具&#xff0c;专注于SSH管理和窗口操作&#xff1a;1. 实现可视化SSH连接管理器&#xff0c;支持分组和快速连接&#xff1b;2. 提供高级分屏布局模板&#…

作者头像 李华
网站建设 2026/6/15 11:28:28

零基础学会用AI创建第一个工作流

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个适合新手的简单工作流教程项目&#xff0c;实现一个天气预报提醒工作流&#xff1a;1)每天定时获取天气数据 2)判断是否下雨 3)如果下雨则发送提醒邮件。使用最简化的界面…

作者头像 李华