news 2026/4/6 4:44:21

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/3/29 15:15:23

C#基础语言--Windows Form基础:菜单控件、下拉列表控件

01 菜单控件Form界面可以在请在此处键入那里填写想要填写的东西下拉列表控件可以通过属性列表里的Items集合添加下拉列表的数据也可以通过代码添加数据首先通过SelectedIndex 设置默认选择的项comboBox1.SelectedIndex 0;通过代码来添加数据源List<string>list new Lis…

作者头像 李华
网站建设 2026/4/5 7:03:26

G-HELPER快速原型:10分钟搭建你的第一个项目

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 设计一个快速原型开发工具&#xff0c;利用G-HELPER在10分钟内生成一个完整的项目原型。工具应支持用户输入简单的需求描述&#xff0c;自动生成可运行的原型代码&#xff0c;并提…

作者头像 李华
网站建设 2026/4/5 22:47:06

VibeVoice-WEB-UI是否支持多实例运行?并发任务管理

VibeVoice-WEB-UI 的多实例运行与并发任务管理能力解析 在AI驱动的内容创作浪潮中&#xff0c;文本转语音&#xff08;TTS&#xff09;技术早已超越简单的“朗读”功能&#xff0c;逐步迈向更复杂的语境理解与角色化表达。尤其是在播客、有声书、虚拟访谈等长时多角色对话场景下…

作者头像 李华
网站建设 2026/4/2 11:30:08

Python地铁人流量数据分析与预测系统 基于python地铁数据分析系统+可视化 时间序列预测算法 毕业设计✅

博主介绍&#xff1a;✌全网粉丝50W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…

作者头像 李华
网站建设 2026/4/5 22:52:12

Docker容器创建失败?新手必看解决方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个新手友好的Docker错误解决助手&#xff0c;用简单语言解释Docker容器创建失败的常见原因。提供图文并茂的解决方案&#xff0c;支持逐步引导用户完成修复。包括基础概念解…

作者头像 李华
网站建设 2026/4/3 6:40:35

SVN客户端入门指南:从零开始学版本控制

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向新手的SVN客户端&#xff0c;提供图形化操作界面和详细的步骤指引。要求支持创建本地仓库、提交代码、查看历史记录等基础功能&#xff0c;并内置教程和常见问题解答。…

作者头像 李华