11. Windows应用程序常用控件

15 篇文章 4 订阅

1 控件概述

窗口是由控件有机构成的,所以熟悉控件是进行合理、有效的程序开发的重要前提。Windows应用程序中的控件分为常用控件和高级控件。

1.1 控件的分类及作用

常用控件可以分为文本类控件、选择类控件、分组控件、菜单控件、工具栏控件以及状态栏控件。Windows应用程序控件的基类是位于System.Windows.Form命名空间的Control类。Control类定义了控件类的共同属性、方法和事件,其他控件类都直接或间接的派生自这个基类。
常用控件的作用

控件分类作用
文本类控件文本类控件可以在控件上显示文本
选择类控件主要为用户提供选择的项目
分组控件使用分组控件可以将窗体中的其他控件进行分组处理
菜单控件为系统制作功能菜单,将应用程序命令分组,使他们更容易访问
工具栏控件提供了主菜单中常用的相关工具
状态栏控件用于显示 窗体上的对象的相关信息,或者可以显示应用程序的信息

1.2 控件的命名规范

控件的命名规范

控件名称开头缩写
TextBoxtxt
Buttonbtn
ComboBoxcbox
Labellab
DataGridViewdgv
LitBoxlb
Timertmr
CheckBoxchb
LinkLabelllbl
RichTextBoxrtbox
CheckedListBoxclbox
RadioButtonrbtn
NumbericUpDownnudown
Pamelpl
GroupBoxgbox
TabControltcl
ErrorProviderepro
ImageListilist
HelpProviderhpro
ListViewlv
TreeViewtv
PictureBoxpbox
NotifyIconnicon
DateTimePickerdtpicker
MonthCalendarmcalen
ToolTipttip

1.2 控件的相关操作

对控件的相关操作包括添加控件、对齐控件、锁定控件和删除控件等。

2.1 添加控件

对控件的操作,可以通过“在窗体上绘制控件”、“将控件拖拽到窗体上”和“以编程方式向窗体添加空间”这3中方式添加空间。

  1. 在窗体上绘制控件

在工具箱中单击要添加到窗体的控件,然后在该窗体上单击希望控件左上角所处的位置,然后拖动到希望控件右下角所处位置,控件即按指定的位置和大小添加到窗体中。

  1. 将控件拖拽到窗体上

在工具箱中单击所需控件并将其拖拽到窗体单行的指定位置。

  1. 以编程方式向窗体添加空间

使用new关键字实例化要添加控件所在的类,然后将实例化的控件添加到窗体中。

实例:

//通过Button按钮的Click时间添加一个TextBox控件
private void button_Click(object sender.System.EventArgs e)
{
	TextBox myText = new TextBox();
	myText.Location = new Point(25,25);
	this.Controls.Add(myText);
}

2.2 对齐控件

选定一组控件,这些控件需要对齐。在执行对齐之前,首先选定主导控件(首先被选定的控件就是主导控件)。控件组的最终位置取决于主导控件的位置,再选择菜单栏中的“格式”/“对齐”命令,然后选择对齐方式。

对齐方式实现效果
左对齐将选定控件沿它们的左边对齐
居中对齐将选定控件沿它们的中心点水平对齐
右对齐将选定控件沿它们的右边对齐
顶端对齐将选的控件沿它们的顶边对齐
中间对齐将选的控件沿它们的中心点垂直对齐
底部对齐将选定的件沿它们的底边对齐

2.3 锁定控件

在控件的“属性”窗口中,单击Locked属性并选择true即可锁定控件。此外,还可以右击控件,在弹出的快捷菜单中选择“锁定控件”命令。如果要锁定窗体上所有的控件,可以在选择菜单栏中的“格式”/“锁定控件”命令。
完成窗体设置后。为了避免误操作而改变窗体控件的位置,可以用控件锁定的方法对控件进行定位。

2.4 删除控件

删除控件的方法非常简单,可以在控件上单击鼠标右键选择删除命令、或者选中控件按下Delete按键。

3 文本类控件

文本类控件主要包括标签控件(Label控件)、按钮控件(Button控件)、文本框控件(TextBox控件)和有格式文本控件(Rich TextBook控件)。

3.1 标签控件(Label控件)

标签控件(Label控件)主要用于显示用户不能编辑的文本,标识窗体上的对象。也可以通过编写代码来设置要显示的文本信息。如果要添加一个标签控件,系统会自动创建标签控件的一个对象。

  1. 设置标签文本

① 通过标签控件的属性面板设置
直接在标签控件的属性面板中设置Text属性的值
② 通过代码设置
label1.Text = “你好~”;

  1. 显示/隐藏控件

① 通过标签控件的属性面板设置
直接在标签控件的属性面板中设置Visible属性的值,属性的值为True则显示控件,为False则隐藏控件。
② 通过代码设置
label1.Visible = true;

3.2 按钮控件(button控件)

按钮控件(button控件)允许用户通过单击来执行操作。按钮控件(button控件)既可以显示文本,也可以显示图像。

  1. 响应按钮的单击事件

单击按钮控件时将引发Click事件,执行Click事件中的代码。

  1. 将按钮设置为窗体的“接受”按钮

通过设置窗体的AcceptButton属性,可以设置窗体的“接受”按钮。如果设置了此按钮,则用户每次按下Enter键都相当于单击该按钮。

实例:

private void Form1_Load(object sender,EventArgs e)
{
	this.AcceptButton = button1;
}
private void button1_Click(object sender,EventArgs e)
{
	MessageBox.Show("引发了接受按钮");
}
  1. 将按钮设置为窗体的“取消”按钮
    通过设置窗体的CancelButton属性,可以设置窗体的“取消”按钮。如果设置该属性,则用户每次按下Esc键都相当于单击了该按钮。

实例:

private void Form1_Load(object sender,EventArgs e)
{
	this.CanecelButton = button1;
}
private void button1_Click(object sender,EventArgs e)
{
	MessageBox.Show("单击了取消按钮");
}

说明:
如果想实现鼠标移入和移出按钮时,改变按钮的样式或字体样式,可以用OnMouseEnter(在鼠标指针进入控件时发生)和OnMouseLeave(在鼠标离开控件的可见部分时发生)时间来实现。

3.3 文本框控件(TextBox控件)

文本框控件(TextBox控件)用于获取用户输入的数据或者显示文本。文本框控件通常用于可编辑文件,也可以使其成为只读控件。文本框可以显示多个行,对文本换行使其符合控件的大小。

  1. 创建只读文本框

① 通过标签控件的属性面板设置
直接在标签控件的属性面板中设置ReadOnly的属性,true为可编辑,false为不可编辑。
② 通过代码设置
textBox1.ReadOnly= “true”;

  1. 创建密码文本框

① 通过标签控件的属性面板设置
直接在标签控件的属性面板中设置PasswordChar的属性或UseSystemPasswordChar。
UseSystemPasswordChar属性:是否为密码框文本,True则为密码框文本且字符默认显示为“*”。
PasswordChar属性:使用属性值代替文本框内明文的符号。

② 通过代码设置
textBox1.PasswordChar= “*”;
textBox1.UseSystemPasswordChar= true;

说明:
在TextBox控件中可以通过BorderStyle属性获取或设置文本框边框类型,其值为None(无边框)、FixedSingle(单行边框)、Fixed3D(三维边框)。

  1. 创建多行文本框

① 通过标签控件的属性面板设置
直接在标签控件的属性面板中设置Multiline的属性,true为可允许多行输入。
② 通过代码设置
textBox1.Multiline= “true”;

  1. 突出显示文本框中的文本

SelectionStart属性设置选择的起始位置(如果起始位置在回车符和换行符之间,选择长度将自动加1。该属性值不能为负数)
SelectionLength属性设置选择文本的长度
① 通过代码设置
textBox1.SelectionStart = 5;
textBox1.SelectionLength = 5;

  1. 响应文本框的文本更改时间

当文本框中的文件发生更改时,将会引发文本框的TextChanged时间。

3.4 有格式文本控件(Rich TextBox控件)

有格式文本控件(Rich TextBox控件)用于显示、输入和操作带有格式的文本。RichTextBox控件除了执行TextBox控件的所有功能之外,还可以显示字体、颜色和链接,从文本加载文本和嵌入的图像,撤销和重复编辑操作以及查找指定的字符。

  1. 在Rich TextBox控件中显示滚动条

通过RichTextBox控件的Multiline属性,可以控制控件中是否显示滚动条。滚动条分为水平滚动条和垂直滚动条,通过ScrollBars属性可以设置如何显示滚动条。

ScrollBars属性的属性值及说明

属性值说明
Both只有当文本超过控件的宽度和长度时,才显示水平滚动条或垂直滚动条,或俩个滚动条都显示
None从不显示任何滚动
Horizontal只有当文本超过控件的宽度时,才显示水平滚动条。必须将WordWrap属性设置为false,才会出现这种情况。
Vertical只有当文本超过控件的高度时,才显示垂直滚动条
ForcedHorizontal当WordWrap属性设置为false时,显示水平滚动条。在文本未超过控件的宽度时,该滚动条显示为浅灰色。
ForcedVertical始终显示垂直滚动条。在文本未超过控件的长度时,该滚动条显示为浅灰色。
ForcedBoth始终显示垂直滚动。当WordWrap属性设置为false时,显示水平滚动条。在文本未超过控件的宽度或长度时,俩个滚动条均显示为浅灰色。

注意:
当WordWrap(指示多行文本框控件在必要时是否自动换行到下一行的开始)属性为true时,则不论ScrollBars属性的值是什么,都不会显示水平滚动条。

  1. 在Rich TextBox控件中设置字体属性

通过SelectionFont属性设置Rich TextBox控件中字体的字体系列、大小和字样。通过SelectColor属性设置字体的颜色。
实例:

private void Form1_Load(object sender, EventArgs e)
{
    richTextBox1.Multiline = true;  //实现多行显示
    richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //只显示垂直滚动条
    richTextBox1.SelectionFont = new Font("楷体", 12, FontStyle.Bold);  //楷体 大小12 粗体
    richTextBox1.SelectionColor = System.Drawing.Color.Blue;  // 蓝色
}

效果:
在这里插入图片描述

  1. 将Rich TextBox控件显示为超链接样式

Rich TextBox控件可以将Web链接显示为彩色或下划线形式。可以编写代码,在单击链接时打开浏览器窗口,该窗口中显示的连接中本文指定的网站。通过Text属性,设置控件中含有超链接的文本。然后在控件的LinkClicked事件中编写事件处理程序,将所需的文本发送到浏览器。
注意:
在Rich TextBox控件的文本中设置超链接是,必须用“http://”开头,且http的前面不能有数字和字母,只能是空格或汉字,否则将无法实现超链接操作。
实例:

 private void Form1_Load(object sender, EventArgs e)
 {
     richTextBox1.Multiline = true;  //实现多行显示
     richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //只显示垂直滚动条
     richTextBox1.Text = "欢迎登陆 https://blog.csdn.net/qq_41525263?spm=1000.2115.3001.5343 ShiMingSoft ";
 }
 private void richTextBox1_LinkClcked(object sender, LinkClickedEventArgs e)
 {
     System.Diagnostics.Process.Start(e.LinkText);
 }

效果:
在这里插入图片描述

  1. 在RichTextBox控件中设置段落格式
    RichTextBox控件具有多个用于设置所显示的文本格式的选项。可以通过设置SelectionBullet属性将选定的段落设置为项目符号列表的格式。也可以通过SelectionIndent和SelectHangingIndent属性设置段落向对于控件的左右边缘进行缩进。
    实例:
private void Form1_Load(object sender, EventArgs e)
{
    richTextBox1.Multiline = true;  //实现多行显示
    richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //只显示垂直滚动条
    richTextBox1.SelectionIndent = 8;//控件中数据的左边缘与控件左边缘距离为8
    richTextBox1.SelectionRightIndent = 12;//控件中数据的右边缘与控件右边缘距离为12
}

效果 :
在这里插入图片描述
实例:

 private void Form2_Load(object sender, EventArgs e)
{
    richTextBox1.Multiline = true;  //实现多行显示
    richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; //只显示垂直滚动条
    richTextBox1.SelectionBullet = true;  //使控件中的内容以项目符号列表的格式排列
}

效果 :

在这里插入图片描述

4 选择类控件

选择类控件主要包括下拉组合框控件(ComboBox控件)、复选框控件(CheckBox控件)、单选按钮控件(RadioButton控件)、数值选择控件(NumbericUpDown控件)和列表控件(ListBox控件)。

4.1 下拉组合框控件(ComboBox)

下拉组合框控件用于在下拉组合框中线束数据。下拉组合框控件主要由俩部分组成:第一部分是一个允许用户输入列表项的文本框;第二部分是一个列表框,他显示一个选项列表,用户可以从中选择一项。
说明:
ComboBox显示与一个ListBox组合的文本框编辑字段,使用户可以从列表中选择项,也可以输入新文本。

  1. 创建只可以选择的下拉框

通过设置控件的DropDownStyle属性,可以将ComboBox控件设置为可以选择的下拉框。DropDownStyle属性有三个属性值,这三个属性值对应不同的样式。

Simple:使ComboBox控件的列表部分总是可见的。
DropDown:DropDownStyle属性的默认值,使用户可以编辑ComboBox控件的文本框部分,只有单击右侧的箭头才能显示列表部分。
DropDownList:用户不能编辑ComboBox控件的文本框部分,呈现下拉框样式。
实例:

//设置DropDownStyle属性
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("内一科");
comboBox1.Items.Add("内二科");
comboBox1.Items.Add("骨科");
comboBox1.Items.Add("儿科");

效果:
在这里插入图片描述

  1. 选中下拉组合框中可编辑部分的所有文本

通过控件的SelectAll方法,可以选择ComboBox控件的可编辑部分的所有文本。在使用SelectAll方法之前,要将控件的DropDownStyle属性设置为DropDown,这样才能在文本框部分对选择项进行编辑。

语法 :

public void SelectAll()

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //将控件的DropDownStyle属性设置为DropDown,选择下拉列表中的某项,然后单击算则按钮调用控件的SelectAll方法。当再次查看下拉列表时,可以看到编辑文本框中的内容已经被选中
    comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
    comboBox1.Items.Add("内一科");
    comboBox1.Items.Add("内二科");
    comboBox1.Items.Add("骨科");
    comboBox1.Items.Add("儿科");
}
private void button1_Click(object sender, EventArgs e)
{
    comboBox1.SelectAll();
}

效果:
在这里插入图片描述

  1. 响应下拉组合框的选项值更改时间

当下拉列表的选项发生改变时,将会引发控件SelectedValueChanged事件。当SelectedValue属性更改时才会触发SelectedValueChanged事件。
实例:

private void Form1_Load(object sender, EventArgs e)
{
    //下拉列表的选择发生改变时,触发SelectedIndexChanged事件更改label的值
    comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
    comboBox1.Items.Add("内一科");
    comboBox1.Items.Add("内二科");
    comboBox1.Items.Add("骨科");
    comboBox1.Items.Add("儿科");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    label1.Text = comboBox1.Text;
}

效果:
在这里插入图片描述

4.2 复选框控件(CheckBox控件)

复选框控件(CheckBox控件)用来表示是否选取了某个选项条件。常用于为用户提供具有是否或真假的选项。

  1. 判断复选框是否选中

通过在控件的Click时间中判断控件的CheckState属性,来判断复选框是否被选中。CheckState属性的返回值时Checked或Unchecked,返回值Checked表示控件在选中状态,而返回值Unchecked表示控件已经取消选中状态。

说明:
CheckBox控件指示某个特定条件是处于打开状态还是处于关闭状态。它常用于为用户提供是否或真假选项。可以成组使用复选框控件以显示多重选项,用户可以从中选择一项或多项。

例:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    //在控件的Click事件中判断手否被选中,如果是弹出相应提示
    if (checkBox1.CheckState == CheckState.Checked)
    {
        MessageBox.Show("checkBox控件被选中");
    }
    else
    {
        MessageBox.Show("checkBox控件选择被取消");
    }
}

效果:
在这里插入图片描述
在这里插入图片描述

  1. 响应复选框的选中状态更改事件

当控件的选中状态发生改变时,将会引发控件的CheckStateChanged事件

实例:

private void checkBox1_CheckStateChanged(object sender, EventArgs e)
{
    MessageBox.Show("checkBox控件选择状态发生改变");
}

效果:在这里插入图片描述

4.3 单选按钮控件(RadioButton)

单选按钮控件(RadioButton)为用户提供俩个或多个互斥选项组成的选项集。当用户选中某单选按钮时,同一组中的其他单选按钮不能同时选中。

说明:单选按钮必须在同一组中才能实现单选效果。

  1. 判断单选按钮是否选中

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //通过俩个RadioButton控件的Click事件,判断控件是否为选中状态
    radioButton1.Checked = false;
    radioButton2.Checked = false;
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
    if (radioButton1.Checked == true)
    {
        MessageBox.Show("radioButton1控件被选中");
     }
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
    if (radioButton2.Checked == true)
    {
        MessageBox.Show("radioButton2控件被选中");
    }
}

效果:
在这里插入图片描述
在这里插入图片描述

  1. 响应单选按钮选中状态更改事件

当控件的选中状态发生改变时,会引发控件的CheckedChanged事件。

实例:

  private void Form1_Load(object sender, EventArgs e)
  {
      radioButton1.Checked = false;
  }
  private void radioButton1_CheckedChanged(object sender, EventArgs e)
  {
      MessageBox.Show("radioButton1控件选中状态被更改");
  }
  private void button1_Click(object sender, EventArgs e)
  {
      radioButton1.Checked = true;
  }

  private void button2_Click(object sender, EventArgs e)
  {
      radioButton1.Checked = false;
  }

效果:
在这里插入图片描述

在这里插入图片描述

4.4 数值选择控件(NumericUpDown控件)

数值选择控件(NumericUpDown控件)是一个显示和输入数值的控件。该控件提供一对上下箭头,用户可以单击上下箭头选择数值,也可直接输入。该控件的Maximum属性可以设置数值的最大值,如果输入的数值大于这个属性的值,则自动把数值改为设置的最大值。该控件的Minimum属性可以设置数值的最小值,如果输入的数值小于这个属性的值,则自动把数值改为设置的最小值。

  1. 获取NumericUpDown控件中显示的数值

通过控件的Value属性,可以获取NumericUpDown控件中显示的数值。
语法:

public decimal Value{ get; set ;}
--属性值:NumericUpDown控件的数值

实例:

private void Form1_Load(object sender, EventArgs e)
{
    numericUpDown1.Maximum = 10;
    numericUpDown1.Minimum = 1;
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    label1.Text = "当前控件中显示的数值:" + numericUpDown1.Value;
}

效果:
在这里插入图片描述

说明:

当UserEdit属性(指示用户是否已输入值)设置为true,则在验证或更新该值之前,将调用ParseEditText方法(将数字显示框中的文本转换为数值)。然后,验证该值是否为Mininum和Maximum俩值之间,并调用UpdateEditText方法(以适当的格式显示数字显示框中当前的值)。

2.设置NumericUpDown控件中数值的显示方法

NumericUpDown控件的DecimalPlaces属性用于确定在小数点后显示几位数,默认值为0。ThousandsSeparator属性用于确定是否每隔三个十进制数字就插入一个分隔符,默认情况下为false。如果将Hexadecimal属性设置为true,则该控件可以用十六进制(而不是十进制)显示值,默认情况下为false。

说明:
DecimalPlaces属性的值不能小于0,或大于99。否则会出现ArgumentOutOFRangeException异常(当参数超出调用方法所定义的允许取值范围时引发的异常)

实例:

private void Form1_Load(object sender, EventArgs e)
{
	//使控件中数值的小数点显示后俩位
    numericUpDown1.Maximum = 10;
    numericUpDown1.Minimum = 1;
    numericUpDown1.DecimalPlaces = 2;
}

效果:
在这里插入图片描述

4.5 列表控件(ListBox控件)

列表控件(ListBox控件)用于显示一个列表,用户可以从中选择一项或多项。如果选项总数超出可显示的帧数,则控件会自动添加滚动条。

  1. 在ListBox控件中添加和移出项

通过ListBox控件的Items属性的Add方法,可以向ListBox控件中添加项目。通过ListBox控件的Items属性的Remove方法,可以将ListBox控件中选中的项目移出。

实例:

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);
    }
}

效果:
在这里插入图片描述

  1. 创建总显示滚动条的列表控件

通过设置控件的HorizontalScrollbar属性和ScrollAlwaysVisible属性可以使控件总显示滚动条。如果将
HorizontalScrollbar属性设置为true,则显示水平滚动条。如果将ScrollAlwaysVisible属性设置为true,则始终显示垂直滚动条。

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //HorizontalScrollbar属性为true,显示水平滚动条
    listBox1.HorizontalScrollbar = true;
    //ScrollAlwaysVisible属性为true,显示垂直滚动条
    listBox1.ScrollAlwaysVisible = true;
    button2.Visible = false;
}
private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "")
    {
        MessageBox.Show("添加项目不能为空");
    }
    else
    {
        listBox1.Items.Add(textBox1.Text);
        textBox1.Text = "";
    }
}

效果:
在这里插入图片描述

  1. 在ListBox控件中选择多项

通过设置SelectionMode属性的值可以实现在ListBox控件中选择多项。SelectionMode属性的值是SelectionMode枚举值之一,默认为SelectionMode.One。
SelectionMode枚举成员及说明:

枚举成员说明
MultiExtended可以选择多项,并且用户可以使用Shift键、Ctrl键和箭头键来进行选择
MultiSimple可以选择多项
None无法选择项
One只能选择一项

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //实现在控件中可以选择多项
    listBox1.SelectionMode = SelectionMode.MultiExtended;
}
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)
{
    label1.Text = "共选择了:" + listBox1.SelectedItems.Count + "项";
}

效果:
在这里插入图片描述

5 分组类控件

分组类控件主要包括容器控件(panel控件)、分组框控件(GroupBox控件)和选项卡控件(TabControl控件)。

5.1 容器控件(Panel控件)

容器控件(Panel控件)用于为其他控件提供可识别的分组。容器控件可以使窗体的分类更详细,便于用户理解。

容器控件就好像是商场的各个楼层,如1楼是化妆品层、二楼是男装层、三楼是女装层等。当然也可以在各层中继续划分,也就是可以在容器控件中嵌套放置多个容器控件。

使用Panel控件的Show方法可以显示控件。
语法:

public void Show()

实例:

private void Form1_Load(object sender, EventArgs e)
{
    panel1.Visible = false;
    richTextBox1.Text = "姓名:张三\n性别:男";
}
private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "")
    {
        MessageBox.Show("请输出姓名");
        textBox1.Focus();  //使光标焦点处于文本框中
    }
    else
    {
        if (textBox1.Text == "张三")
        {
            panel1.Visible = true;
        }
        else
        {
            MessageBox.Show("查无此人");
            textBox1.Text = "";
        }
    }
}

效果:
在这里插入图片描述
在这里插入图片描述

说明:如果将Panel控件的Enabled属性(设置控件是否可以对用户交互做出响应)设置为false,那么在该容器中的所有控件将设置为不可用状态。

5.2 分组框控件(GroupBox控件)

分组框控件(GroupBox控件)主要为其他控件提供分组,按照控件的分组来细分窗体的功能。其在所包含的控件集周围总是显示边框,并且可以显示标题,但是分组框没有滚动条。

语法:

public override string Text{ get; set; ];

实例:

private void Form1_Load(object sender, EventArgs e)
{
    groupBox1.Text = "条件";
}

效果:
在这里插入图片描述

5.3 选项卡控件(TabControl控件)

选项卡控件(TabControl控件)可以添加多个选项卡,然后在选项卡上添加子控件。这样就可以把窗体设计成多页,时窗体的功能划分为多个部分。选项卡中可包含图片或其他控件。选项卡控件还可以用来创建用于设置一组相关属性的属性页。

TabControl控件包含选项卡页,TabPage控件表示选项卡,TabControl控件的TabPages属性表示其中的所有TabPage控件的集合。TabPages集合中TabPage选项卡的顺序反映了TablControl控件中选项卡的顺序。

  1. 改变选项卡的显示样式

通过使用TablControl控件和和组成控件上各选项卡的TabPage对象的属性,可以更改Windows窗体中选项卡的外观。通过设置这些属性,可以使用编程方式在选项卡上显示图像,以垂直方式而非水平方式显示选项卡,显示多行选项卡,以及启用或禁用选项卡。

①在选项卡的标签部位显示图像

说明:
为了使用户更容易了解选项卡的作用,可以在鼠标移入选项卡时,弹出一个提示信息,对当前选项卡的作用或操作步骤进行详细说明。其设置步骤如下:将tabPage属性中的ShoeToolTips属性设置为true,然后在tabPage属性的ToolTipText属性中输入相关的说明文字。

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //向窗体添加一个ImageList控件,然后将图像添加到ImageList控件的图像列表,然后添加到tabpage里面
    tabControl1.ImageList = imageList1;
    tabPage1.ImageIndex = 0;
    tabPage1.Text = "选项卡 1";
    tabPage2.ImageIndex = 1;
    tabPage2.Text = "选项卡 2";
}

效果:
在这里插入图片描述

②将选项卡设置为按钮

将TabControl控件的Appearance属性设置为Buttons或FlatButtons,即可将选项卡显示为按钮样式。如果设置为Buttons,则选项卡具有三维按钮的外观。如果设置为FlatButtons,则选项卡具有水平按钮的外观。

实例:

private void Form1_Load(object sender, EventArgs e)
{
    tabControl1.ImageList = imageList1;
    tabPage1.ImageIndex = 0;
    tabPage1.Text = "选项卡 1";
    tabPage2.ImageIndex = 1;
    tabPage2.Text = "选项卡 2";
    //将控件Appearance属性设置为buttons,使其具有三维按钮的外观
    tabControl1.Appearance = TabAppearance.Buttons;
}

效果:
在这里插入图片描述

  1. 在选项卡中添加控件

如果要在选项卡中添加控件,可以通过TabPage的Controls属性的Add方法实现。Add方法主要用于将指定的控件添加到控件集合中。

语法:

public virtual void Add(Control value)

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //通过Controls属性的Add方法向tabPage1中添加一个按钮控件
    tabControl1.ImageList = imageList1;
    tabPage1.ImageIndex = 0;
    tabPage1.Text = "选项卡 1";
    tabPage2.ImageIndex = 1;
    tabPage2.Text = "选项卡 2";
    Button btn1 = new Button();
    btn1.Text = "添加的按钮控件";
    tabPage1.Controls.Add(btn1);
}

效果:
在这里插入图片描述

注意:在设置TabControl控件中的控件位置时,是以TablControl控件为参照物的。

  1. 添加和移除选项卡

①以编程方式添加选项卡
控件默认情况下,TabControl控件包含俩个TabPage控件,可以使用TabPages属性的Add方法添加新的选项卡。
Add方法主要用于将TabPage添加到集合。

说明:
在TabPages集合中所添加的选项卡页的顺序,是选项卡在控件中出现的顺序。集合中的选项卡页的顺序反映了选项卡在控件中出现的顺序。

语法:

public void Add(tabPage value)
--value:要添加的tabPage 

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //通过TabPages属性的Add方法向添加新的选项卡
    tabControl1.ImageList = imageList1;
    tabPage1.ImageIndex = 0;
    tabPage1.Text = "选项卡 1";
    tabPage2.ImageIndex = 1;
    tabPage2.Text = "选项卡 2";
    string Title = "新增选项卡 " + (tabControl1.TabCount +1).ToString() ;
    tabControl1.TabPages.Add(Title);
}

效果:
在这里插入图片描述

②以编程方式移除选项卡

如果要移除控件中的某个选项卡,可以使用TabPages属性的Remove方法。
Remove方法的功能是从集合中移除TabPage。

说明:在用TabPages属性的Remove(Value)方法删除选项卡时,如果参数value的值为空则触发异常。

语法:

public void Remove(tabPage value)
--value:要移除的tabPage 

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //通过TabPages属性的Add方法向添加新的选项卡
    tabControl1.ImageList = imageList1;
    tabPage1.ImageIndex = 0;
    tabPage1.Text = "选项卡 1";
    tabPage2.ImageIndex = 1;
    tabPage2.Text = "选项卡 2";
}

private void button1_Click(object sender, EventArgs e)
{
    string Title = "新增选项卡 " + (tabControl1.TabCount + 1).ToString();
    tabControl1.TabPages.Add(Title);

}
private void button2_Click(object sender, EventArgs e)
{
    if (tabControl1.SelectedIndex ==0)
    {
        MessageBox.Show("请选择要删除的选项卡");
    }
    else
    {
        tabControl1.TabPages.Remove(tabControl1.SelectedTab);

    }
}

效果:
在这里插入图片描述

6 菜单、工具栏和状态栏控件

菜单是窗体应用程序中主要的用户界面要素,工具栏为应用程序提供了操作系统的界面,状态栏显示系统的一些状态信息。

6.1 菜单控件(MenuStrip控件)

菜单控件(MenuStrip控件)是程序的主菜单。MenuStrip控件取代了先前版本的MainMenu控件。MenuStrip控件支持多文档界面、菜单合并、工具栏提示和溢出。可以通过添加访问键、快捷键、选中标记、图像和分隔条,来增强菜单的可用性和可读性。

说明:
①在使用菜单栏的快捷键时,首先要选择主菜单,在弹出下拉列表后,才可以在键盘中单击子菜单所对应的快捷键。
②在设置菜单项时,也可以在MenuStrip控件中的Items属性所调用的“项集合编辑器”对话框中添加所需的菜单项。

操作步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

效果:
在这里插入图片描述

6.2 工具栏控件(ToolStrip控件)

工具栏控件(ToolStrip控件)是.NET框架3.5增加的新控件,它替换了早期版本的ToolBar控件、ToopStrip及其关联的类,它可以创建具有Windows XP、Office、InternetExplorer或自定义的外观和行为的工具栏及其他用户界面元素。这些元素支持溢出及运行时重新排序。

工具栏其实就相当于每个工人的工具箱,每个人都有自己常用的工具(每个人的常用工具各不相同),为了方便,将这些常用工具放入个人工具箱。

菜单栏中对应控件与其作用:

控件作用
Button包含文本和图像中可以让用户选择的项
Label包含文本和图像的项,不可以让用户选择,可以显示超链接
SplitButton在Button的基础上增加了一个下拉菜单
DropDownButton用于下拉菜单选择项
Separator分隔符
ComboBox显示一个ComboBox的项
TextBox显示一个TextBox的项
ProgressBar显示一个ProgressBar的项

操作步骤:
在这里插入图片描述

效果:

在这里插入图片描述

6.3 状态栏控件(StatusStrip控件)

状态栏控件(StatusStrip控件)通常用于窗体的最底部,用于显示窗体上的对象的相关信息,或者可以显示应用程序的信息。通常,StatusStrip控件由ToolStripStatusLabel对象组成,每个这样的对象都可以显示文本、图标或同时显示俩者。StatusStrip还可以包含ToolStripDropDownButton、ToolStripSplitButton和ToolStripProgressBar控件(ToolStripProgressBar控件只能以水平方向显示)。

实例:

private void Form1_Load(object sender, EventArgs e)
{
    //在任务栏上显示当前系统日期
    this.toolStripStatusLabel1.Text = DateTime.Now.ToShortDateString();
}
private void button1_Click(object sender, EventArgs e)
{
    this.toolStripProgressBar1.Minimum = 0;      //进度条起始读书
    this.toolStripProgressBar1.Minimum = 5000;   //进度条最大值
    this.toolStripProgressBar1.Step = 2;         //进度条的增值
    for (int i = 0; i <= 4999; i++)
    {
        this.toolStripProgressBar1.PerformStep();
    }
}

效果:

在这里插入图片描述

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows应用程序的开发可以使用多种开发框架和技术。以下是一些常用Windows应用程序开发框架: 1. .NET Framework:.NET Framework是一个广泛使用的开发框架,支持使用多种编程语言(如C#、VB.NET、F#等)进行Windows应用程序开发。它提供了丰富的类库和工具,可以用于开发桌面应用程序、Web应用程序和服务等。 2. Universal Windows Platform (UWP):UWP是一种用于开发跨设备的Windows应用程序的框架。它可以创建适用于多种设备(如PC、平板、手机、Xbox等)的通用应用程序,并提供了一致的用户体验和API集合。 3. Windows Presentation Foundation (WPF):WPF是一个用于创建富客户端应用程序的框架,它提供了丰富的UI控件、布局和动画功能,适用于创建具有复杂用户界面的Windows应用程序。 4. WinForms:WinForms是一种传统的Windows应用程序开发框架,它基于Windows Forms技术,提供了一组UI控件和事件模型,适用于创建传统的桌面应用程序。 5. Windows API:Windows API是Windows操作系统提供的一组原生API函数和接口,可以使用各种编程语言进行调用。使用Windows API可以实现更底层的Windows应用程序开发,但相对来说需要更多的编码工作。 除了以上框架,还有其他一些开发框架和技术可用于Windows应用程序开发,如Electron、Qt、Java(使用JavaFX或Swing)等。选择适合的开发框架取决于应用程序的需求、开发人员的技能和偏好等因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值