C# 窗体控件简介 ∈ C# 编程笔记

窗体是C# 的一大特色,我想这也许也是部分开发者选择 C# 的原因之一。C# 的窗体控件看起来很多,但是常用的也就是那么几个(在以下表格中用红色字体表示),这篇博客就简单介绍一下,之后也会不定期更新的。

1.控件表格

序号控件名称图例作用
1label (标签)在这里插入图片描述可用于显示少量文本,一般做指示用
2TextBox & RichTextBox(文本框)在这里插入图片描述可用于显示大量文本
3NumericUpDown(数值调整器)在这里插入图片描述控件中内容(一般是数字)可通过上下箭头调整或输入
4Button(按钮)在这里插入图片描述通常用它来执行命令
5RadioButton(单选按钮)在这里插入图片描述常成组出现,用于提供两个或多个互斥选项
6GroupBox(分组框)在这里插入图片描述为其他控件提供可识别的分组
7CheckBox(复选框)在这里插入图片描述可多选
8ListBox(列表框)在这里插入图片描述它显示一个项目列表供用户选择。用户一次可以选择一项,也可以选择多项。
9ComboBox(组合框)在这里插入图片描述顶部是一个允许输入文本的文本框,下面的列表框则显示列表项
10CheckedListBox(复选列表框)在这里插入图片描述能完成列表框可以完成的所有任务,并且还可以在列表项旁边显示复选标记
11PictureBox(图片框)在这里插入图片描述常用于图形设计和图像处理应用程序
12Timer(计时器)在这里插入图片描述按一定的时间间隔周期性地触发一个名为Tick的事件
13ProgressBar(进度条)在这里插入图片描述通过在应用程序中使用进度条,就可以告诉用户应用程序正在执行冗长的任务且应用程序仍在响应。
14TrackBar(跟踪条)在这里插入图片描述在大量信息中进行浏览,或用于以可视形式调整数字设置
15HScrollBar (水平滚动条)在这里插入图片描述方便在较长的列表中或大量信息中 转移
16VScrollBar(垂直滚动条)在这里插入图片描述方便在较长的列表中或大量信息中 转移
17OpenFileDialog(打开文件对话框)在这里插入图片描述用来弹出Windows中标准的【打开文件】
18SaveFileDialog (保存文件对话框)在这里插入图片描述用来弹出 Windows 中标准的【保存文件】对话框
19FontDialog (字体对话框)在这里插入图片描述用来弹出Windows中标准的【字体】对话框
20ColorDialog(颜色对话框)在这里插入图片描述用来弹出 Windows 中标准的【颜色】对话框
21MenuStrip(菜单)在这里插入图片描述形成菜单
22PrintDialog(打印对话框)在这里插入图片描述显示Windows标准的【打印】对话框
23ListView (列表)在这里插入图片描述注意行列,groups,博客

注:控件的具体属性和事件响应请看最后链接

2.控件属性

(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。
(2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized
(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。
(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。
(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。
(5)Width属性:用来获取或设置窗体的宽度。
(6)Height属性:用来获取或设置窗体的高度。
(7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。
(8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。
(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。值为true 时将显示控制框,值为false时不显示控制框。
(10)MaximizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。值为 true 时显示最大化按钮,值为false时不显示最大化按钮。
(11)MinimizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。值为 true时显示最小化按钮,值为false时不显示最小化按钮。
(12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Enter 键时就相当于单击了窗体上的该按钮。
(13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Esc 键时就相当于单击了窗体上的该按钮。
(14)Modal 属性:该属性用来设置窗体是否为有模式显示窗体。如果有模式地显示该窗体,该属性值为true;否则为 false。当有模式地显示窗体时,只能对模式窗体上的对象进行输入。必须隐藏或关闭模式窗体(通常是响应某个用户操作),然后才能对另一窗体进行输入。有模式显示的窗体通常用做应用程序中的对话框。
(15)ActiveControl属性:用来获取或设置容器控件中的活动控件。窗体也是一种容器控件。
(16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。
(17)AutoScroll 属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。如果此属性值设置为
true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。另外,当自动滚动打开时,窗体的工作区自动滚动,以使具有输入焦点的控件可见。
(18)BackColor属性:用来获取或设置窗体的背景色。
(19)BackgroundImage属性:用来获取或设置窗体的背景图像。
(20)Enabled 属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。如果控件可以对用户交互作出响应,则为 true;否则为false。默认值为true。
(21)Font属性:用来获取或设置控件显示的文本的字体。
(22)ForeColor属性:用来获取或设置控件的前景色。
(23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。值为 true时,是子窗体,值为false时,不是子窗体。
(24)IsMdiContainer 属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的容器。值为true时,是子窗体的容器,值为false时,不是子窗体的容器。
(25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体
是否将接收该事件。值为true时,窗体将接收按键事件,值为false时,窗体不接收按键事件。
(26)MdiChildren属性:数组属性。数组中的每个元素表示以此窗体作为父级的多文档界面(MDI)子窗体。
(27)MdiParent属性:用来获取或设置此窗体的当前多文档界面(MDI)父窗体。
(28)ShowInTaskbar属性:用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体。
(29)Visible属性:用于获取或设置一个值,该值指示是否显示该窗体或控件。值为true时显示窗体或控件,为 false时不显示。
(30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。

3.窗体编程技巧

1.窗口切换

1.新建一个form, 添加自己需要的控件,但是必须要有GroupBox:
在这里插入图片描述
2.添加 n 个用户控件
在这里插入图片描述
你想要几个窗口,就搞几个。
在这里插入图片描述
3.在主窗口的代码中,定义n个窗口变量,并在load过程中给n个窗口变量赋值。
在这里插入图片描述

	public partial class Curve : Form
    {
        public Scurve s1;//定义窗体变量
        public Hcurve h1;
        private void Curve_Load(object sender, EventArgs e)
        {
            s1 = new Scurve();//给窗体变量赋值
            h1 = new Hcurve();
        }
        public Curve()
        {
            InitializeComponent();
        }
    }

4.添加控制窗口切换的事件响应函数:

        private void SToolStripMenuItem_Click(object sender, EventArgs e)
        {
            s1.Show();//显示窗体控件
            gB.Controls.Clear();//清空之前加载的窗体控件
            gB.Controls.Add(s1);//加载窗体控件s1
        }

        private void HToolStripMenuItem_Click(object sender, EventArgs e)
        {
            h1.Show();//显示窗体控件
            gB.Controls.Clear();//清空之前加载的窗体控件
            gB.Controls.Add(h1);//加载窗体控件h1
        }

这里的gB是groupBox 的Name
5.然后在你刚才创建的用户控件中添加你需要的控件,就完事了。

2.在一个窗体中使用另一个窗体中的控件

Form2 frm2 = new Form1();
frm2.Button; //调用控件
frm2.Method();  //调用方法

如果要用到另一个控件中的属性,该控件的Modifiers 属性应改为 public:
在这里插入图片描述

3.展开/折叠窗口

1.首先添加俩button
在这里插入图片描述
2.在窗体的 Load 函数中添加:

this.Size = new Size(780, 492);//小号窗体
Control1.Visible = false;

3.分别双击俩按钮,添加事件相应函数

		//展开
        private void Control_Click(object sender, EventArgs e)
        {
            int a = 1212 - 812, b = a / 10;//让展开过程有个动画效果。
            for (int i = 0; i < 11; i++)
            {
                this.Size = new Size(782+b*i, 492);
                System.Threading.Thread.Sleep(30);//休眠30毫秒
            }
            Control.Visible=false;
            Control1.Visible = true;
        }
        //折叠
        private void Control1_Click(object sender, EventArgs e)
        {
            int a = 812 - 1212, b = a / 10;//让折叠过程有个动画效果。
            for (int i = 0; i < 11; i++)
            {
                this.Size = new Size(1210 + b * i, 492);
                System.Threading.Thread.Sleep(30);//休眠30毫秒
            }
            Control1.Visible = false;
            Control.Visible = true;
        }

4.结果展示:
在这里插入图片描述

4.用pictureBox 画图

https://blog.csdn.net/Gou_Hailong/article/details/96458624
画圆弧:https://blog.csdn.net/Gou_Hailong/article/details/106715943

5.右键弹菜单

1.添加一个ContextMenuStrip,并且添加相应的项。
在这里插入图片描述
2.在文本框 RichTextBox 的属性 contextMenuStrip 中选择新增的右键菜单控件 contextMenuStrip1。
3.在相应的按钮上添加相应的响应事件函数。

6.快捷键

在这里插入图片描述
1.按钮的Text属性为例:新建(&N)(可选)
2.窗体的KeyPreview(向窗体注册键盘事件)(确定窗体上控件的键盘事件是否已向窗体注册)属性设置为True;
3.在窗体的KeyDown事件中做相应业务处理:eg.

private void Form1_KeyDown(object sender, KeyEventArgs e)
{     
    if ((e.KeyCode == Keys.P) && e.Control)    
        buttonname.PerformClick();//打印 Ctrl+P
    if ((e.KeyCode == Keys.N) && e.Control)    
        buttonname.PerformClick();//新建 Ctrl+N
}

7.超链接

System.Diagnostics.Process.Start("https://blog.csdn.net/Gou_Hailong/article/details/105362633");

引用/参考文章

[1] OnLineStudy-CSDN博主:https://blog.csdn.net/OnLineStudy/article/details/5761388
[2] 杜_小妖-CSDN博主:https://blog.csdn.net/duyusean/article/details/73381502
[3] 百度经验:https://jingyan.baidu.com/article/f7ff0bfc7176492e26bb1309.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪猪头拯救地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值