第九章、Windows应用程序(9.6节~9.16节:TextBox、RadioButton、CheckBox、ComboBox、ProgressBar、ImageList、DateTimePick)

9.6、按钮Button

9.6.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

Text:控件上显示的文本。

Enabled:控制该控件是否可用。

Visible:确认该控件是否可见。

TabIndex:确认该控件在该窗体中占用的tab键顺序索引。

9.6.2、事件

最常用的就是Click事件,其他的不用。

9.7、标签Label、LinkLabel

9.7.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

Text:控件上显示的文本。

Enabled:控制该控件是否可用。

Visible:确认该控件是否可见。

TabIndex:确认该控件在该窗体中占用的tab键顺序索引。

9.7.2、事件

对于Label一般就是显示一个文本,不会使用它的事件;但是对于LinkLabel,一旦点击它就要链接到某个地址上去,就会使用它的事件:

private void linkLabel1_LinkClicked(object sender,LinkLabelLinkClickedEventArgs e)

{

//指示该链接是否显示成为被访问过的颜色

linkLabel1.LinkVisited = true;

//Call the Process.Start method to open the default browser

//with a URL:

System.Diagnostics.Process.Start("http://www.hao123.com");

}

9.8、文本框TextBox

9.8.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

Text:控件上显示的文本。

Enabled:控制该控件是否可用,如果为false,不仅不能往文本框中写数据(只读),事件也无法触发,在程序中对文本框的文本进行赋值还是可以的。

Visible:确认该控件是否可见。

ReadOnly:确认是否为只读的,如果为true,则表示只读,但是事件还是可以触发的,在程序中对文本框的文本进行赋值还是可以的。

TabIndex:确认该控件在该窗体中占用的tab键顺序索引。

BackColor:背景颜色。

BorderStyle:边框风格。

Font:文本框中的文本的字体。

ForeColor:文本框中的文本的颜色。

TextAlign:文本的对齐方式。

MaxLength:可以容纳的最大字符数。

PasswordChar:输入密码的时候应该显示的字符。

ScrollBars控制是否有滚动条。

Multiline:控制该文本框是否会显示多行。

WordWrap:是否自动换行。

CharacterCasing:控制文本框中只能输入大小写字母。

当文本框可以显示多行的时候,一定要让它自动换行,然后设置垂直的滚动条:

textBox1.ScrollBars = ScrollBars.Vertical;

9.8.2、事件

对与文本框最常用的就是文本发生改变的时候触发的事件:

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

9.9、分组框GroupBox

分组框就是将一组功能的控件包含在一起,只是在外观上起一个分组的作用,仅此而已。分组的时候不能用分组框去覆盖在别的控件上分组,这种是覆盖而非分组。要想分组,就必须把控件往分组框中拖。

9.9.1、属性

Name:唯一标识该

Text:控件上显示的文本。

9.10、单选按钮RadioButton、复选框CheckBox

在一个窗体中,可以有多个单选按钮,但是永远都只会有一个按钮被选中,如果点击其他按钮,那个按钮就被选中了,之前被选中的按钮就不会被选中了。但是如果把单选按钮进行分组,把一组单选按钮放到一个组合框,另外一组单选按钮放到另外一个组合框中的话,每个组合框都是独立的,每个组合框中只允许一个被选中,这样就可能出现一个窗体上有多个被选中的单选按钮,但是分别在不同的组合框中。

在一个窗体中会有多个复选框,各个复选框之间是相互独立的,可以同时选中所有的复选框。

9.10.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

Text:控件上显示的文本。

Checked:这个是一个bool值,设置或者获取该控件是否被选中。True表示被选中了,false表示没有被选中。

TabIndex:确认该控件在该窗体中占用的tab键顺序索引。

9.10.2、事件

CheckedChanged

private void checkBox1_CheckedChanged(object sender,EventArgs e)

{

if (checkBox1.Checked ==true)

MessageBox.Show("checkBox1被选中");

else

MessageBox.Show("checkBox1未被选中");

}

private void radioButton1_CheckedChanged(object sender,EventArgs e)

{

if (radioButton1.Checked ==true)

MessageBox.Show("radioButton1被选中");

else

MessageBox.Show("radioButton1未被选中");

}

private void radioButton2_CheckedChanged(object sender,EventArgs e)

{

if (radioButton2.Checked ==true)

MessageBox.Show("radioButton2被选中");

else

MessageBox.Show("radioButton2未被选中");

}

注意:对于radioButton,因为永远都只有一个被选中,所以当某一个radioButtonChecked发生改变的时候,即由未选中变成选中的时候,必然导致之前被选中的radioButtonChecked属性发生改变。这个时候两个radioButtonChecked属性都发生改变了,所以就都会被触发CheckedChanged事件。

9.11、组合框ComboBox

9.11.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

MaxDropDownItems:下拉列表中显示的最多的项数,不是Items.Count,但是这个属性设置的好像没什么效果。

TabIndex:确认该控件在该窗体中占用的tab键顺序索引。

Sorted:控制组合框中元素的集合是否排序,是bool类型的。按字符串来排序的。

Text:控件上显示的文本。

Items集合:表示组合框中元素的集合。可以用objectItems[int index]来取得集合中的值,集合的索引是从0开始到Items.Count-1,越界就会出错。

Items.Count表示集合中元素的个数。

SelectedItemobject comboBox1.SelectedItem :可以通过该属性设置或者取得选中项。在设置选中项的时候,如果插入的时候是字符串就写字符串,如果是数值就写数值,否则无法识别;设置这个属性的时候,如果集合中存在,就相当于点击了下拉列表,最终文本框中会显示选中值的;如果设置的值不存在,那么不会改变文本框当前的显示值,也不报错。获取的时候,没有选中任何项的时候,该属性值是null,否则就是具体的某一项以object返回。

SelectedIndexintcomboBox1.SelectedIndex:可以通过该属性设置或者取得选中项的索引。索引是整数的,设置的时候,如果索引存在,就相当于点击了下拉列表,最终文本框中会显示值的,如果设置成-1,那么就会让控件不选中任何项目。如果设置的索引不存在,越界了(不在从-1开始到Items.Count-1),就会报错。获取的时候,如果控件没有选中任何项,那么该属性的值是-1

DropDownStyle:控制组合框的显示方式:

(1)、comboBox1.DropDownStyle = ComboBoxStyle.DropDown;//默认方式,文本部分可编辑,列表点击才显示。当点击下拉列表中的某一项的时候,就会把该项的值赋值给文本框;也可以直接给文本框赋值。有三种方式可以获取文本框的值:

1、 object comboBox1.SelectedItem//没选中的时候为null,直接toString会报错

2、 object comboBox1.Items[comboBox1.SelectedIndex]//没有选中的时候会报错

3、 string comboBox1.Text//没有选中的时候值为长度为0的字符串

所以在这种模式下,如果选择下拉里表中的值,那么文本框text与下拉列表的值就相同,但是如果用户自己输入,那么文本框的值就可能不在下拉列表中,所以在这种模式下最好用comboBox1.Text来取值。

(2)、comboBox1.DropDownStyle = ComboBoxStyle.Simple;//文本部分可编辑,列表部分总可见。这种与第一种只是显示不通,其他都一样。

(3)、comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;//文本部分不可编辑,列表点击才显示。因为文本不能编辑,所以选中项的值与文本值相同,但是没选中的时候,使用前两种方式就出错,所以还是用comboBox1.Text来取值比较好。

注意:虽然组合框可以接受任何类型的值,但是建议全部插入字符串,即使是数值也转换成为字符串插入。设置选中项的时候,可以直接设置字符串而不用设置数值。统一了程序比较好处理。

取值的时候,要把object转换成想要的类型。

DataSource:设置该控件的数据源,为某一张表。

DisplayMember:该控件显示的是数据源的哪一列,为数据源表的列名。

ValueMember:该控件的值是数据源的哪一列,为数据源表的列名,这个不会被显示出来。

SelectedValue:选中项对应的值,可读写。

在这种方式下,SelectedIndex仍然有效,表示选中项的索引;SelectedValue表示选中项的值,与ValueMember对应;text仍然有效,对应着DisplayMemberSelectedItemSelectedTextitems集合无效。

DataTable table = new DataTable("ComboBoxDataSource");

table.Columns.Add("textFiled",typeof(string));

table.Columns.Add("valueField",typeof(string));

DataRow row;

row = table.NewRow();

row["textFiled"] = "a";

row["valueField"] ="A";

table.Rows.Add(row);

row = table.NewRow();

row["textFiled"] = "b";

row["valueField"] ="B";

table.Rows.Add(row);

row = table.NewRow();

row["textFiled"] = "c";

row["valueField"] ="C";

table.Rows.Add(row);

row = table.NewRow();

row["textFiled"] = "d";

row["valueField"] ="D";

table.Rows.Add(row);

comboBox1.DataSource = table;

comboBox1.DisplayMember = "textFiled";

comboBox1.ValueMember = "valueField";

MessageBox.Show(comboBox1.SelectedValue.ToString());

MessageBox.Show(comboBox1.SelectedIndex.ToString());

MessageBox.Show(comboBox1.SelectedItem.ToString());

9.11.2、函数

comboBox1.Items.Add(object item);//因为形参是object类型,所以可以添加任何类型的变量。如果是不排序的话,这种添加是添加到最后一项的下一项;如果是排序的话,添加之后,集合会按照字符串进行排序。

comboBox1.Items.Insert(int index,object item)//这种是将某一项插入到一个固定的索引位置,索引必须是从0到comboBox1.Items.Count,越界就会出错,即使排序也不能越界。对于不排序的,原来位置如果有值的话,就会后移;对于排序的,不会按照索引为主而是按照排序为主了。

comboBox1.Items.Remove(object item);//根据值来移除项,虽然参数是object类型的,但是如果当初插入数据的时候插入的是数值,那么移除的时候就要输入数值;否则插入是字符串,移除就要输入字符串,否则无法匹配。

comboBox1.Items.RemoveAt(int index);//这个是直接根据索引来删除的,如果没有元素,就无法删除了;如果有元素,这个索引范围是从0到Items.Count-1,越界就会出错。

comboBox1.Items.Clear();//清空所有的项。

9.11.3、事件

SelectedIndexChanged这个事件是在选择索引的时候触发,哪怕前后两次选择的索引是相同的,也会触发。

private void comboBox1_SelectedIndexChanged(object sender,EventArgs e)

{

}

9.12、列表框ListBox

列表框跟组合框的功能、用法基本相同,下面只介绍几个特殊的东西:

9.12.1、属性

SelectionMode:设置单选多选。

listBox1.SelectionMode = SelectionMode.MultiSimple;//可多选,用鼠标点击多选

listBox1.SelectionMode = SelectionMode.MultiExtended;//可多选,可使用ctrl、shift、上下箭头选

listBox1.SelectionMode = SelectionMode.One;//单选

listBox1.SelectionMode = SelectionMode.None;//不可选

SelectedItems:选中项的集合。

SelectedItems.Count:选中项的元素个数。

SelectedItems[int index]:选中项集合中的元素引用,这个索引是选中项集合中的索引。

listBox1.SelectedItems.Count

listBox1.SelectedItems[i]

9.13、进度条ProgressBar

9.13.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

Maximum:获取或者设置该进度条的最大值,是整型的。

Minimum:获取或者设置该进度条的最小值,也是整型的。

Value:获取或者设置该值,这个值必须满足:Minimum<= Value<= Maximum,越界就会报错,也是整型的。

注意:当ValueMinimum的时候,进度条是空的,当ValueMaximum的时候,是满的,当Maximum<Value<Minimum,进度条就在空与满之间。

9.14、分页容器TabControl

9.14.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

TabPages:这个是页面的集合,可以在在该集合中添加具体的页面,页面由一个重要的属性:Text

9.15、图片列表ImageList

9.15.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

Images:图片的集合,可以在该集合中添加图片。每个图片都有索引。

注意:外界控件访问图片集的时候,首先将外界控件的ImageList属性设置成定义好的图片列表对象,然后将外界控件ImageIndex的属性设置好,这个索引就是定义好的图片列表对象中添加的图片的索引。

9.16、时间日期控件DateTimePicker

9.16.1、属性

Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。

Value:返回一个DateTime类型的值,日期部分是用户通过控件选择的,时间无法选择,就是计算机当前的时间。默认情况下Value是当前的时间日期。

你可能感兴趣的:(ProgressBar)