C#-从入门到精通-第11章 Windows应用程序常用控件

【控件概述】
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属性
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43482627/article/details/91351054