一、概述
在C#中,控件的基类是位于System.Windows.Forms命名空间下的Control类。Control类定义了控件类的共同属性、方法和事件,其他的控件类都直接或间接地派生自这个基类。
二、控件的相关操作
1、添加控件
①在窗体中绘制控件:在工具箱中单击要添加到窗体的控件,在窗体中按住鼠标左键进行拖动。
②将控件直接拖拽到窗体中。
③以编程方式向窗体中添加控件:通过new关键字实例化要添加控件所在的类,然后将实例化的控件添加到窗体中。(不太常用)
第二部:双击button1,或在button事件中双击Click。
2、对齐控件
先选定主导控件(第一个被选定的控件就是主导控件),控件组的最终位置取决于主导控件的位置,再在—菜单栏—格式—对齐选择,选择对齐的方式。
3、删除控件
右键选择删除、选中控件按delete键。
三、常用控件的使用
1、Label控件(标签控件)
主要用于显示用户不能编辑的文本,标识窗体上的对象,一般是用作描述信息作用等。另外也可以通过编写代码来设置要显示的文本信息。
①设置标签文本
可以通过两种方法设置Label控件显示的文本:第一种直接在Label控件的属性面板中设置Text属性;第二种通过代码设置Text的属性。
label1.Text = "帐号:";
②显示/隐藏控件
通过设置Visible属性来设置显示/隐藏Label控件,如果Visible属性的值为true,则显示控件;如果Visible属性的值为false,则隐藏控件。
label1.Visible = true;
2、Button控件(按钮控件)
允许用户通过单击来执行操作。button控件既可以显示文本,也可以显示图像。
private void button1_Click(object sender,EventArgs e)
{
MessageBox.Show("开始");
}
private void button2_Click(object sender,EventArgs e)
{
Application.Exit();//推出当前程序
}
3、TextBox控件(文本框控件)
TextBox控件主要用于获取用户输入的数据或显示文本,它通常用于可编辑文本,也可以使其成为只读控件。文本框可以显示多行。
①创建只读文本框
通过设置文本框控件的ReadOnly属性,可以设置文本框是否为只读。如果ReadOnly属性为true,那么不能编辑文本框,只能通过文本框显示数据。
textBox1.ReadOnly = true;//文本框设置为只读
②创建密码文本框
通过设置文本框的PasswordChar属性或UseSystemPasswordChar属性可以将文本框设置成密码文本框。使用PasswordChar属性可以设置输入密码时文本框中显示的字符(如将密码显示为“*”或“#”等)。如果将UseSystemPasswordChar属性设置为true,则当输入密码时,在文本框中输入则会显示为“*”。
③创建多行文本框
默认情况下,TextBox控件只允许输入单行数据,如果将其Multiline属性设置为true,则在TextBox控件中即可输入多行数据。
④响应文本框的TextChanged事件
当文本框中的文本发生更改时,将会引发文本框的TextChanged事件。
private void textBox1_TextChanged(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
}
4、RadioButton控件(单选按钮控件)
为用户提供有两个或多个互斥选项组成的选项集。当用户选中某单选按钮时,同一组中的其他单选按钮时,同一组中的其他单选按钮不能同时选定。
单选按钮必须在同一组中才能实现单选效果。
①判断单选按钮是否选中
通过Checked属性可以判断RadioButton控件的默认状态下是否选中的状态,如果属性值为true,则控件被选中;如果属性值为false,则控件选中状态被取消。
②响应单选按钮选中状态更改事件
当RadioButton控件的选中状态发生更改时,会引发控件的CheckedChanged事件。
using System;
using System.Windows.Forms;
namespace _20220813_4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
MessageBox.Show("选择管理员登陆");
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked)
{
MessageBox.Show("选择普通用户登陆");
}
}
}
}
5、Checkbox控件(复选框控件)
用来表示是否选取了某个选项条件,常用于为用户提供是/否或真/假选项。
①判断复选框是否被选中
通过CheckState属性可以判断复选框是否被选中。CheckState属性的返回值是Checked或Unchecked。返回值为Checked表示控件处在选中的状态。反之为Unchecked表示控件已经取消选中状态。
备注:CheckBox控件指示某个特定条件是处于打开状态还是处于关闭状态,它常用于为用户提供是/否或真/假选项。可以成组使用CheckBox控件以显示多重选项,用户可以 从中选择一项或多项。
②响应复选框的选中状态更改事件
当CheckBox控件的选择状态发生改变时,将会引发控件的CheckStateChanged事件。
using System;
using System.Windows.Forms;
namespace _20220813_5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str = "选择的选项如下:";
foreach (Control ctrl in this.Controls) //遍历窗体中所有的控件
{
if (ctrl.GetType().Name == "CheckBox") //判断是否为CheckBox
{
CheckBox cBox = (CheckBox)ctrl; //创建CheckBox对象
if (cBox.Checked == true) //判断CheckBox控件是否被选中
{
str += "\n" + cBox.Text; //获取CheckBox控件的文本
}
}
}
MessageBox.Show(str);
}
}
}