【控件概述】
Windows应用程序控件的基类是位于System.Winsdows.Forms命名空间下的Control类。
用编程方式添加控件
TextBox txt = new TextBox();//实例化要添加的控件
txt.Location = new Point(20, 30);//设置控件显示的位置
this.Controls.Add(txt);//在控件集合中添加这个控件
锁定控件:将控件的Locked属性改为True。
显示/隐藏控件:Visible属性。
【常用控件】
菜单栏控件:MenuStrip;
工具栏控件:ToolStrip;
状态栏控件:StatusStrip;
【文本类控件】
1.标签控件(Label)
设置标签文本:设置Text属性;
label1.Text=“我爱CSharp”;
2.按钮控件(button)
1)响应按钮的单击事件
Click事件
2)将按钮设置为窗体的“接受”按钮
设置AcceptButton属性,设置后,按下enter键就相当于点击了该按钮。
3)将按钮设置为窗体的“取消”按钮
设置CancelButton属性,设置后,按下Esc键就相当于点击了该按钮。
3.文本框控件(TextBox)
1)创建只读文本框
设置ReadOnly属性,如果设置为True,那么不能编辑文本框。
2)创建密码文本框
设置PasswordChar属性,设置成什么符号,输入内容就会显示什么符号。
或者
将UseSystemPasswordChar属性设置为True,那么输入内容都会显示
3)创建多行文本框
将Multiline属性设置为true,就可以输入多行数据。
4)突出显示文本框中的文字
SelectionStart属性和SelectionLength属性
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Multiline = true;//将textbox设置为可以显示多行
textBox1.Text = "昨夜星辰昨夜风,画楼西畔桂堂东。身无彩凤双飞翼,心有灵犀一点通。";
textBox1.Height = 100;//设置高度
textBox1.SelectionStart = 5;//起始位置5
textBox1.SelectionLength = 5;//5个字符
}
5)响应文本框的文本更改事件
文本框的TextChanged事件
private void textBox1_TextChanged(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
}
4.有格式文本控件(Rich TextBox)
1)在RichTextBox控件中显示滚动条
首先设置Multiline属性为true,表示显示滚动条。设置ScrollBars属性可以设置如何显示滚动条。
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;//允许多行显示,可以显示滚动条
//设置ScrollBars属性实现只显示垂直滚动条
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
}
2)在RichTextBox控件中设置字体样式
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
//设置字体楷体,12号,加粗
richTextBox1.SelectionFont = new Font("楷体", 12, FontStyle.Bold);
//字体颜色为蓝色
richTextBox1.SelectionColor = System.Drawing.Color.Blue;
}
3)将RichTextBox控件显示为超链接样式
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
richTextBox1.Text = "欢迎登录http://www.cccxy.com编程体验网";
}
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
//在控件的LinkClicked事件
System.Diagnostics.Process.Start(e.LinkText);
}
4)在RichTextBox控件中设置段落样式
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
//使内容以项目符号列表的格式排列
richTextBox1.SelectionBullet = true;
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Multiline = true;
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
//使内容左边缘与控件左边缘之间的距离为8像素
richTextBox1.SelectionIndent = 8;
//使内容右边缘与控件右边缘之间的距离为12像素
richTextBox1.SelectionRightIndent = 12;
}
【选择类控件】
1.下拉组合框控件(ComboBox)
1)创建只可以选择的下拉框
设置DropDownStyle。
private void Form1_Load(object sender, EventArgs e)
{
//设置DropDownStyle属性,使控件呈现下拉列表的样式
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
//向控件中添加下拉列表项
comboBox1.Items.Add("用一生下载你");
comboBox1.Items.Add("芸烨湘枫");
comboBox1.Items.Add("一生所爱");
}
2)选中下拉组合框中可编辑部分的所有文本
SelectAll方法。使用该方法前要将控件的DropDownStyle属性设置为DropDown可编辑
private void Form1_Load(object sender, EventArgs e)
{
//设置DropDownStyle属性,下拉列表文本框可编辑样式
comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
//向控件中添加下拉列表项
comboBox1.Items.Add("用一生下载你");
comboBox1.Items.Add("芸烨湘枫");
comboBox1.Items.Add("一生所爱");
}
private void button1_Click(object sender, EventArgs e)
{
//使用SelectAll方法,当再次下拉列表时,文本框中的内容被选中
comboBox1.SelectAll();
}
3)响应下拉组合框的选项值更改事件
当下拉列表选择项发生改变时,会引发SelectedValueChanged事件。
private void Form1_Load(object sender, EventArgs e)
{
//设置DropDownStyle属性,下拉列表文本框可编辑样式
comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
//向控件中添加下拉列表项
comboBox1.Items.Add("用一生下载你");
comboBox1.Items.Add("芸烨湘枫");
comboBox1.Items.Add("一生所爱");
}
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
//在控件的SelectedValueChanged事件中,使Label控件的Text属性等于控件的选择项
label1.Text = comboBox1.Text;
}
2.复选框控件(CheckBox)
1)判断复选框是否选中
通过在控件的Click事件中判断CheckState属性,如果CheckState返回值为Checked则表示被选中,如果返回值为Unchecked表示未选中。
private void checkBox1_Click(object sender, EventArgs e)
{
if (checkBox1.CheckState == CheckState.Checked)
{
MessageBox.Show("CheckBox控件被选中");
}
else
{
MessageBox.Show("CheckBox控件选择被取消");
}
}
2)响应复选框的选中状态更改事件
当控件选择状态发生改变时会触发控件的CheckStateChanged事件。
private void checkBox1_CheckStateChanged(object sender, EventArgs e)
{
MessageBox.Show("控件的选择状态发生改变");
}
3.单选按钮控件(RadioButton)
1)判断单选按钮是否被选中
在控件的Click事件中判断Checked属性。
private void radioButton2_Click(object sender, EventArgs e)
{
if (radioButton2.Checked == true)
{
MessageBox.Show("RadioButton2控件被选中");
}
}
private void radioButton1_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
MessageBox.Show("RadioButton1控件被选中");
}
}
private void Form1_Load(object sender, EventArgs e)
{
//加载事件中,设置两个控件初始状态为未选中状态
radioButton1.Checked = false;
radioButton2.Checked = false;
}
2)响应单选按钮选中状态更改事件
当控件选中状态发生更改时,会触发CheckedChanged事件。
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
MessageBox.Show("RadioButton1控件的选中状态被更改");
}
4.数值选择控件(NumericUpDown)
Maximum属性可以设置最大值,Minimum属性设置最小值。
1)获取NumericUpDown控件中显示的数值
通过控件的Value属性,可以获取控件中显示的数值。
private void Form1_Load(object sender, EventArgs e)
{
numericUpDown1.Maximum = 20;//设置最大值20
numericUpDown1.Minimum = 1;//设置最小值1
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
//当控件中的值发生改变时,显示当前的值
label1.Text = "当前控件中显示的数值:" + numericUpDown1.Value;
}
2)设置NumericUpDown控件中数值的显示方式
控件的DecimalPlaces属性用于确定在小数点后显示几位数,默认值为0,这里是2。
ThousandsSeparator属性用于确定是否每隔3个十进制数字位就插入一个分隔符,默认为false。
Hexadecimal属性设置为true,则该控件可以用十六进制显示值,默认为false。
5.列表控件(ListBox)
用于显示列表,可以自动添加滚动条。
1.在ListBox控件中添加或移除项
通过ListBox控件的Item属性的Add方法添加项,Remove方法移除项。
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请输入要添加的数据");
}
else
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = "";//清空文本框
}
}
private void button2_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count == 0)//判断是否选择项
{
MessageBox.Show("请选择要删除的项目");
}
else
{
listBox1.Items.Remove(listBox1.SelectedItem);//移除选中项
}
}
2)创建总显示滚动条的列表控件
设置控件的HorizontalScrollbar属性和ScorllAlwaysVisible属性。
显示水平滚动条
始终显示垂直滚动条,如果HorizontalScrollbar属性也同时为true,则也会始终显示水平滚动条。
3)在ListBox控件中选择多项
设置SelectionMode属性
None:无法选择项
One:只能选择一项
MultiSimple:可以选择多项
MultiExtended:可以选择多项,并且用户可以使用Shift键、Ctrl键和箭头键来进行选择。
private void Form1_Load(object sender, EventArgs e)
{
listBox1.SelectionMode = SelectionMode.MultiExtended;
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("添加项目不能为空");
}
else
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = "";
}
}
private void button1_Click(object sender, EventArgs e)
{
//显示选择项的数量
label1.Text = "共选择了:" + listBox1.SelectedItems.Count.ToString() + "项";
}
【分组类控件】
1.容器控件(Panel控件)
控件的Show方法可以显示控件
private void Form1_Load(object sender, EventArgs e)
{
panel1.Visible = false;//隐藏Panel控件
//设置richTextBox控件的Text属性
richTextBox1.Text = "姓名:芸烨湘枫\n性别:女\n年龄:27\n民族:汉\n职业:医疗";
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请输出姓名");
textBox1.Focus();//使光标焦点处于文本框中
}
else
{
if (textBox1.Text.Trim() == "芸烨湘枫")//判断文本框中是否输入芸烨湘枫
{
panel1.Show();//显示panel控件
}
else
{
MessageBox.Show("查无此人");
textBox1.Text = "";
}
}
}
2.分组框控件(GroupBox控件)
3.选项卡控件(TabControl控件)
1)改变选项卡的显示样式
private void Form1_Load(object sender, EventArgs e)
{
tabControl1.ImageList = imageList1;//选项卡的图标是imagelist1中拥有的图片
tabPage1.ImageIndex = 0;//tabpage1的图标是imagelist1中第1个图片
tabPage1.Text = "选项卡1";//tabpage1的文本显示为选项卡1
tabPage2.ImageIndex = 1;
tabPage2.Text = "选项卡2";
}
2)将选项卡显示为按钮
Appearance属性