ListBox 控件

ListBox 控件又称列表框,它显示一个项目列表供用户选择。在列表框中,用户

一次可以选择一项,也可以选择多项。

1、常用属性:

(1) Items属性: 用于存放列表框中的列表项,

是一个集合。通过该属性,可以添加列表项、

移除列表项和获得列表项的数目。

(2)MultiColumn 属性:用来获取或设置一

个值,该值指示ListBox是否支持多列。值

为 true 时表示支持多列,值为 false 时不支持

多列。当使用多列模式时,可以使控件得以显

示更多可见项.

(3)ColumnWidth 属性:用来获取或设置多

列 ListBox控件中列的宽度。

(4)SelectionMode属性:用来获取或设置在ListBox控件中选择列表项的方法。当 SelectionMode属性设

置为 SelectionMode.MultiExtended 时,按下 Shift 键的同时单击鼠标或者同时按 Shift 键和箭头键之一(上

箭头键、下箭头键、左箭头键和右箭头键),会将选定内容从前一选定项扩展到当前项。按 Ctrl 键的同时

单击鼠标将选择或撤销选择列表中的某项;当该属性设置为 SelectionMode.MultiSimple 时,鼠标单击或按空格键将选择或撤销选择列表中的某项;该属性的默认值为SelectionMode.One,则只能选择一项。

(5)SelectedIndex属性:用来获取或设置ListBox控件中当前选定项的从零开始的索引。如果未选定任何

项,则返回值为1。对于只能选择一项的ListBox控件,可使用此属性确定ListBox中选定的项的索引。如

果 ListBox 控件的 SelectionMode 属性设置为 SelectionMode.MultiSimple 或 SelectionMode.MultiExtended,

并在该列表中选定多个项,此时应用SelectedIndices来获取选定项的索引。

(6)SelectedIndices。该属性用来获取一个集合,该集合包含 ListBox 控件中所有选定项的从零开始的索

引。

(7)SelectedItem属性:获取或设置ListBox中的当前选定项。

(8)SelectedItems属性:获取 ListBox控件中选定项的集合,通常在ListBox控件的SelectionMode属性值

设置为SelectionMode.MultiSimple或SelectionMode.MultiExtended(它指示多重选择ListBox)时使用。

(9)Sorted属性:获取或设置一个值,该值指示ListBox控件中的列表项是否按字母顺序排序。如果列表

项按字母排序,该属性值为true;如果列表项不按字母排序,该属性值为false。默认值为false。在向已排

序的 ListBox控件中添加项时,这些项会移动到排序列表中适当的位置。

(10)Text 属性:该属性用来获取或搜索 ListBox 控件中当前选定项的文本。当把此属性值设置为字符串

值时,ListBox 控件将在列表内搜索与指定文本匹配的项并选择该项。若在列表中选择了一项或多项,该

属性将返回第一个选定项的文本。

(11)ItemsCount属性:该属性用来返回列表项的数目。

2、常用方法:

(1)FindString方法:用来查找列表项中以指定字符串开始的第一个项,有两种调用格式。

[格式1]:

ListBox对象.FindString(s);

[功能]:在“ListBox 对象”指定的列表框中查找字符串 s,如果找到则返回该项从零开始的索引;如果找

不到匹配项,则返回ListBox.NoMatches。

[格式2]:

ListBox对象.FindString(s,n);

[功能]:在 ListBox 对象指定的列表框中查找字符串 s,查找的起始项为n+1,即 n 为开始查找的前一项的

索引。如果找到则返回该项从零开始的索引;如果找不到匹配项,则返回ListBox.NoMatches。

注意:FindString 方式只是词语部分匹配,即要查找的字符串在列表项的开头,便认为是匹配的,如果要

精确匹配,即只有在列表项与查找字符串完全一致时才认为匹配,可使用FindStringExact方法,调用格式

与功能与FindString基本一致。

(2)SetSelected方法:用来选中某一项或取消对某一项的选择,调用格式及功能如下。

[格式]:

ListBox对象.SetSelected(n,l);

[功能]:如果参数 l 的值是 true,则在 ListBox 对象指定的列表框中选中索引为 n 的列表项,如果参数l 的

值是 false,则索引为n 的列表项未被选中。

(3)Items.Add方法:用来向列表框中增添一个列表项,调用格式及功能如下。

[格式]:

ListBox对象.Items.Add(s);

[功能]:把参数s添加到“listBox对象”指定的列表框的列表项中。

(4)Items.Insert方法:用来在列表框中指定位置插入一个列表项,调用格式及功能如下。

[格式]:

ListBox对象.Items.Insert(n,s);

[功能]:参数n代表要插入的项的位置索引,参数 s代表要插入的项,其功能是把s插入到“listBox对象”

指定的列表框的索引为n的位置处。

(5)Items.Remove方法:用来从列表框中删除一个列表项,调用格式及功能如下。

[格式]:

ListBox对象.Items.Remove(k);

[功能]:从 ListBox对象指定的列表框中删除列表项s。

(6)Items.Clear方法:用来清除列表框中的所有项。其调用格式如下:

ListBox对象.Items.Clear();

该方法无参数。

(7)BeginUpdate方法和EndUpdate方法:这两个方法均无参数,调用格式分别如下:

ListBox对象.BeginUpdate();

ListBox对象.EndUpdate();

这两个方法的作用是保证使用 Items.Add 方法向列表框中添加列表项时,不重绘列表框。即在向列表框添

加项之前,调用BeginUpdate方法,以防止每次向列表框中添加项时都重新

绘制 ListBox 控件。完成向列表框中添加项的任务后,再调用 EndUpdate 方法使 ListBox 控件重新绘制。

当向列表框中添加大量的列表项时,使用这种方法添加项可以防止在绘制 ListBox 时的闪烁现象。一个例

子程序如下:

publicvoidAddToMyListBox()

{listBox1.BeginUpdate();

for(intx=1;x<5000;x++)

{

listBox1.Items.Add("Item"+x.ToString());

}

listBox1.EndUpdate();

}

ListBox控件常用事件有Click和 SelectedIndexChanged,SelectedIndexChanged事件在列表框中改变选中项

时发生。

11、ComboBox 控件

ComboBox 控件又称组合框,默认情况下,组合框分两个部分显示:顶部是一个允

许输入文本的文本框,下面的列表框则显示列表项。可以认为ComboBox就是文本框与列表框的组合,与

文本框和列表框的功能基本一致。与列表框相比,组合框不能多选,它无 SelectionMode 属性。但组合框

有一个名为DropDownStyle的属性,该属性用来设置或获取组合框的样式,组合框的各种样式, 左边的组合框能够通过文本框输入文本, 中间的组合框则不能输入文本,

只能选择列表项。

12、CheckedListBox 控件

CheckedListBox控件又称复选列表框,它扩展了ListBox控件,它几乎

能完成列表框可以完成的所有任务,并且还可以在列表项旁边显示复

选标记。两种控件间的其他差异在于,复选列表框只支持DrawMode.Normal,并且复选列表框只能有一项选定或没有任何选定。此处需要注意一点:选定的项是指

窗体上突出显示的项,已选中的项是指左边的复选框被选中的项。复选列表框的样式如图9-23所示。

除具有列表框的全部属性外,它还具有以下属性。

(1)CheckOnClick属性:获取或设置一个值,该值指示当某项被选定时

是否应切换左侧的复选框。如果立即切换选中标记,则该属性值为true;

否则为false。默认值为false。

(2)CheckedItems 属性:该属性是复选列表框中选中项的集合,只代表

处于CheckState. Checked或CheckState.Indeterminate状态的那些项。 该集

合中的索引按升序排列。

(3)CheckedIndices 属性:该属性代表选中项(处于选中状态或中间状

态的那些项)索引的集合。

PictureBox控件的使用

13、PictureBox 控件的使用

PictureBox 控件又称图片框,常用于图形设计和图像处理应用程序,在该控件中可以加载的图像文件格式

有:位图文件(.Bmp)、图标文件(.ICO)、图元文件(.wmf)、.JPEG 和.GIF 文件。下而仅介绍该控件的

常用属性和事件。

1、常用属性:

(1)Image属性:用来设置控件要显示的图像。把文件中的图像加载到图片框通常采用以下三种方式。

设计时单击Image属性,在其后将出现【…】按钮,单击该按钮将出现一个【打开】对话框,在该对话框

中找到相应的图形文件后单击【确定】按钮。产生一个Bitmap类的实例并赋值给Image属性。形式如下:

Bitmapp=newBitmap(图像文件名);

pictureBox对象名.Image=p;

通过 Image.FromFile方法直接从文件中加载。形式如下:

pictureBox对象名.Image=Image.FromFile(图像文件名);

(2)SizeMode属性:用来决定图像的显示模式。其取值有四种情况,取值及含义如表9-11所示。各种模

式下的图片显示样式如图9-24所示。

14、Timer 控件

Timer 控件又称定时器控件或计时器控件,在工具箱中的图标是 ,该控件的主要作用是按一定的

时间间隔周期性地触发一个名为Tick的事件, 因此在该事件的代码中可以放置一些需要每隔一段时间重复

执行的程序段。在程序运行时,定时器控件是不可见

的。

1、常用属性:

(1)Enabled 属性:用来设置定时器是否正在运行。值为 true 时,定时器正在运行,值为 false 时,定时

器不在运行。

(2)Interval属性:用来设置定时器两次Tick事件发生的时间间隔,以毫秒为单位。如它的值设置为500,

则将每隔0.5秒发生一个Tick事件。

2、常用方法:

(1)Start方法:用来启动定时器。调用的一般格式如下:

Timer控件名.start();

该方法无参数。

(2)Stop方法:用来停止定时器。调用的一般格式如下:

Timer控件名.stop();

该方法无参数。

3、常用事件:

定义器控件响应的事件只有Tick,每隔Interval时间后将触发一次该事件。

15、ProgressBar控件和 TrackBar控件

1.ProgressBar控件

ProgressBar 控件又称进度条控件,它在工具栏中的图标为 ,该控件在水平栏中显示适当长度

的矩形来指示进程的进度。当执行进程时,进度条用系统突出显示颜色在水平栏中从左向右进行填充。进

程完成时,进度栏被填满。当某进程运行时间较长时,如果没有视觉提示,用户可能会认为应用程序不响

应,通过在应用程序中使用进度条,就可以告诉用户应用程序正在执行冗长的任务且应用程序仍在响应。

ProgressBar控件的常用属性如下。

(1)Maximum属性:用来设置或返回进度条能够显示的最大值,默认值为100。

(2)Minimum属性:用来设置或返回进度条能够显示的最小值,默认值为0。

(3)Value属性:用来设置或返回进度条的当前位置。

(4)Step属性:用来设置或返回一个值,该值用来决定每次调用PerformStep 方法时, Value属性增加的

幅度。例如,如果要复制一组文件,则可将 Step 属性的值设置为 1,并将 Maximum 属性的值设置为要复

制的文件总数。在复制每个文件时,可以调用PerformStep方法按Step属性的值增加进度栏。

ProgressBar控件的常用方法如下。

(1)Increment方法:用来按指定的数量增加进度条的值,调用的一般格式如下:

progressBar对象.Increment(n);

其功能是把“progressBar对象”指定的进度条对象的Value属性值增加n,n为整数。调用该方法之后,若

Value属性大于Maximum属性的值,则 Value属性值就是Maximum值,若Value属性小于Minimum属性

值,则 Value属性值就是Minimum值。

(2)PerformStep方法:用来按step属性值来增加进度条的Value属性值,调用的一般格式如下:

progressBar对象.PerformStep();

该方法无参数。例如,下列程序段是一个显示复制多个文件的进度的进度条使用方法。

privatevoidCopyWithProgress(string[]filenames)

{pBar1.Visible=true;

pBar1.Minimum=1;

pBar1.Maximum=filenames.Length;

pBar1.Value=1;

pBar1.Step=1;

for(intx=1;x<=filenames.Length;x++)

{if(CopyFile(filenames[x-1])==true)

{

pBar1.PerformStep();

}  

}

}

ProgressBar控件能响应很多事件,但一般很少使用。

2.TrackBar控件

TrackBar 控件又称滑块控件、跟踪条控件,它在工具箱中的图标是“ ” 。该控件主要用于在

大量信息中进行浏览,或用于以可视形式调整数字设置。TrackBar控件有两部分:缩略图(也称为滑块)

和刻度线。缩略图是可以调整的部分,其位置与 Value 属性相对应。刻度线是按规则间隔分隔的可视化指

示符。跟踪条控件可以按指定的增量移动,并且可以水平或者垂直排列。

TrackBar控件的常用属性如下。

(1)Maximum属性:用来获取或设置TrackBar控件可表示的范围上限,即最大值。

(2)Minimum属性:用来获取或设置TrackBar控件可表示的范围下限,即最小值。

(3)Orientation属性:用来获取或设置一个值,该值指示跟踪条是在水平方向还是在垂

直方向。

(4)LargeChange属性:用来获取或设置一个值,该值指示当滑块长距离移动时应为Value属性中加上或

减去的值。

(5)SmallChange属性:用来获取或设置当滑块短距离移动时对Value属性进行增减的值。

(6)Value属性:用来获取或设置滑块在跟踪条控件上的当前位置的值。

(7)TickFrequency属性:用来获取或设置一个值,该值指定控件上绘制的刻度之间的增量。

(8)TickStyle 属性:用来获取或设置一个值,该值指示如何显示跟踪条上的刻度线。TrackBar控件的常用事件是ValueChanged,该事件在TrackBar控件的Value属性值改变时发生。

16、HScrollBar 控件和 VScrollBar控件的使用

滚动条(ScrollBar)是大部分Windows应用程序中都具有的控件,是 Windows界面的

一种常见元素,通常分为水平滚动条(HscrollBar)和垂直滚动条(VscrollBar)。HScrollBar

在工具箱中的图标是,VScrollBar控件在工具箱中的图标是。这两

个控件主要用于在应用程序或控件中水平或垂直滚动,以方便在较长的列表中或大量信息中

转移。

1、常用属性:

(1)Minimum和 Maximum属性:与TrackBar控件的同名属性基本相同。

(2)Value属性:用于设置或返回滑块在滚动条中所处的位置,其默认值为0。当滑块

的位置值为最小值时,滑块移到水平滚动条的最左端位置,或移到垂直滚动条的顶端位置。

当滑块的位置值为最大值时,滑块移到水平滚动条的最右端位置或垂直滚动条的底端位置。

(3)SmallChange和LargeChange属性:这两个属性主要用于调整滑块移动的距离。其

中 SmallChange属性用于控制当鼠标单击滚动条两边的箭头时,滑块滚动的值,即 Value属性

增加或减小的值。而LargeChange属性则控制当用鼠标直接单击滚动条时滑块滚动的值。当

用户按下PageUp键或PageDown键或者在滑块的任何一边单击滚动条轨迹时,Value属性将

按照 LargeChange属性中设置的值进行增加或减小。

2、常用事件:

(1)Scroll事件:该事件在用户通过鼠标或键盘移动滑块后发生。

(2)ValueChanged事件:该事件在滚动条控件的Value属性值改变时发生。

滚动条的使用方法与TrackBar控件基本一致,此处不再赘述。对话框类控件

17、OpenFileDialog 控件

OpenFileDialog控件又称打开文件对话框,主要用来弹出Windows中标准的【打开文件】

对话框。该控件在工具箱中的图标为 。

OpenFileDialog控件的常用属性如下。

(1)Title属性:用来获取或设置对话框标题,默认值为空字符串("")。如果标题为空字符串,则系统将

使用默认标题: “打开” 。

(2)Filter属性:用来获取或设置当前文件名筛选器字符串,该字符串决定对话框的【另存为文件类型】

或【文件类型】框中出现的选择内容。对于每个筛选选项,筛选器字符串都包含筛选器说明、垂直线条(|)

和筛选器模式。不同筛选选项的字符串由垂直线条隔开,例如: “文本文件(*.txt)|*.txt|所有文件(*.*)*.*” 。

还可以通过用分号来分隔各种文件类型,可以将多个筛选器模式添加到筛选器中,例如: “图像文件

(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG; *.GIF|所有文件(*.*)|*.*” 。

(3)FilterIndex属性:用来获取或设置文件对话框中当前选定筛选器的索引。第一个筛选器的索引为1,

默认值为1。

(4)FileName 属性:用来获取在打开文件对话框中选定的文件名的字符串。文件名既包含文件路径也包

含扩展名。如果未选定文件,该属性将返回空字符串("")。

(5)InitialDirectory属性:用来获取或设置文件对话框显示的初始目录,默认值为空字符串("")。

(6)ShowReadOnly属性:用来获取或设置一个值,该值指示对话框是否包含只读复选框。如果对话框包

含只读复选框,则属性值为true,否则属性值为false。默认值为false。

(7)ReadOnlyChecked属性:用来获取或设置一个值,该值指示是否选定只读复选框。如果选中了只读复

选框,则属性值为true,反之,属性值为false。默认值为false。

(8)Multiselect属性:用来获取或设置一个值,该值指示对话框是否允许选择多个文件。如果对话框允许

同时选定多个文件,则该属性值为true,反之,属性值为false。默认值为false。

(9)FileNames属性:用来获取对话框中所有选定文件的文件名。每个文件名都既包含文件路径又包含文

件扩展名。如果未选定文件,该方法将返回空数组。

(10)RestoreDirectory属性:用来获取或设置一个值,该值指示对话框在关闭前是否还原当前目录。假设

用户在搜索文件的过程中更改了目录,且该属性值为 true,那么,对话框会将当前目录还原为初始值,若

该属性值为 false,则不还原成初始值。默认值为 false。OpenFileDialog 控件的常用方法有两个:OpenFile

和 ShowDialog方法,本节只介绍ShowDialog方法,该方法的作用是显示通用对话框,其一般调用形式如

下:

通用对话框对象名.ShowDialog();

通用对话框运行时,如果单击对话框中的【确定】按钮,则返回值为 DialogResult.OK;否则返回值为

DialogResult.Cancel。其他对话框控件均具有ShowDialog方法,以后不再重复介绍。

18、SaveFileDialog 控件

SaveFileDialog 控件又称保存文件对话框,主要用来弹出 Windows 中标准的【保存文件】对话框。该控件

在工具箱中的图标为 。

SaveFileDialog 控件也具有 FileName、Filter、FilterIndex、InitialDirectory、Title 等属性,这些属性的作用

与 OpenFileDialog对话框控件基本一致,此处不再赘述。

需注意的是:上述两个对话框只返回要打开或保存的文件名,并没有真正提供打开或保存文件的功能,程

序员必须自己编写文件打开或保存程序,才能真正实现文件的打开和保存功能。

19、FontDialog 控件

FontDialog控件又称字体对话框,主要用来弹出Windows中标准的【字体】对话框。该控件在工具箱中的

图标为 。字体对话框的作用是显示当前安装在系统中的字体列表,供用户进行选择。下面

介绍字体对话框的主要属性。

(1)Font属性:该属性是字体对话框的最重要属性,通过它可以设定或获取字体信息。

(2)Color属性:用来设定或获取字符的颜色。

(3)MaxSize属性:用来获取或设置用户可选择的最大磅值。

(4)MinSize属性:用来获取或设置用户可选择的最小磅值。192VisualC#.NET应用教程

(5)ShowColor属性:用来获取或设置一个值,该值指示对话框是否显示颜色选择框。如果对话框显示颜

色选择框,属性值为true,反之,属性值为false。默认值为false。

(6)ShowEffects 属性:用来获取或设置一个值,该值指示对话框是否包含允许用户指定删除线、下划线

和文本颜色选项的控件。如果对话框包含设置删除线、下划线和文本颜色选项的控件,属性值为 true,反

之,属性值为false。默认值为true。

20、ColorDialog控件

ColorDialog 控件又称颜色对话框,主要用来弹出 Windows 中标准的【颜色】对话框。该控件在工具箱中

的图标为 。颜色对话框的作用是供用户选择一种颜色,并用 Color 属性记录用户选择的颜色值。下面介绍颜色对话框的主要属性。

(1)AllowFullOpen属性:用来获取或设置一个值,该值指示用户是否可以使用该对话框定义自定义颜色。

如果允许用户自定义颜色,属性值为true,否则属性值为false。默认值为true。

(2)FullOpen 属性:用来获取或设置一个值,该值指示用于创建自定义颜色的控件在对话框打开时是否

可见。值为true时可见,值为 false时不可见。

(3)AnyColor 属性:用来获取或设置一个值,该值指示对话框是否显示基本颜色集中可用的所有颜色。

值为 true时,显示所有颜色,否则不显示所有颜色。

(4)Color属性:用来获取或设置用户选定的颜色。

21、PrintDialog控件和 PrintDocument 控件

PrintDialog 控件在工具箱中的图标是 ,PrintDocument 控件在工具箱中的图标是

。使用PrintDialog控件可以显示Windows标准的【打印】对话框,在该对话框中用户可

以选择打印机、选择要打印的页及页码范围等。需要注意的是:该对话框并不负责具体的打印任务,要想

在应用程序中控制打印内容必须使用 PrintDocument 控件。关于这两个控件的详细使用方法读者可参阅相

关资料或VisualC#的帮助文件。

6.用户自定义对话框

除了可以使用Windows自带的标准对话框外,用户还可以把自己设计的窗体定义成对话框。使用自定义对

话框有以下几个要点。

(1)将窗体的FormBorderStyle属性值设置为FixedDialog。

(2)根据需要向窗体上添加控件。

(3)使用窗体的ShowDialog方法显示窗体,即显示出对话框。

22、用户自定义对话框

除了可以使用Windows自带的标准对话框外,用户还可以把自己设计的窗体定义成对话框。使用自定义对

话框有以下几个要点。

(1)将窗体的FormBorderStyle属性值设置为FixedDialog。

(2)根据需要向窗体上添加控件。

(3)使用窗体的ShowDialog方法显示窗体,即显示出对话框。

23、菜单控件

Windows 的菜单系统是图形用户界面(GUI)的重要组成之一,在 VisualC#中使用 MainMenu 控件可以很

方便地实现Windows的菜单,MainMenu控件在工具箱中的图标为 。

1.菜单的结构

图 10-9和图10-10 是典型的菜单结构。其中有文字的单个命令称菜单项,顶层菜单项是横着排列的,单击

某个菜单项后弹出的称为菜单或子菜单,它们均包含若干个菜单项,菜单项其实是 MenuItem 类的一个对

象。菜单项有的是变灰显示的,表示该菜单项当前是被禁止使用的。有的菜单项的提示文字中有带下划线

的字母,该字母称为热键(或访问键),若是顶层菜单,可通过按“ALT+热键”打开该菜单,若是某个子

菜单中的一个选项,则在打开子菜单后直接按热键就会执行相应的菜单命令。有的菜单项后面有一个按键

或组合键,称快捷键,在不打开菜单的情况下按快捷键,将执行相应的命令。在图 10-9 中,【保存文件】

菜单项是加粗显示的,该菜单项称为默认项。图10-9的【另存为】和【退出】之间有一个灰色的线条,该

线条称为分隔线或分隔符。在图 10-10 中菜单项【白色背景】前面有一个“√”号,称为选中标记,菜单项加上选中标记表示该菜单项代表的功能当前正在起作用。

2.菜单项的常用属性

(1)Text 属性:用来获取或设置一个值,通过该值指示菜单项标题。当使用 Text 属性为菜单项指定标题

时,还可以在字符前加一个“&”号来指定热键(访问键,即加下划线的字母)。例如,若要将“File”中

的“F”指定为访问键,应将菜单项的标题指定为“&File” 。

(2)Checked属性:用来获取或设置一个值,通过该值指示选中标记是否出现在菜单项文本的旁边。如果

要放置选中标记在菜单项文本的旁边,属性值为true,否则属性值为false。默认值为false。

(3)DefaultItem 属性:用来获取或设置一个值,通过该值指示菜单项是否为默认菜单项。值为 true 时,

是默认菜单项,值为 false时,不是默认菜单项。菜单的默认菜单项以粗体的形式显示。当用户双击包含默

认项的子菜单后,默认项被选定,然后子菜单关闭。

(4)Enabled属性:用来获取或设置一个值,通过该值指示菜单项是否可用。值为true时表示可用,值为

false表示当前禁止使用。

(5)RadioCheck 属性:用来获取或设置一个值,通过该值指示选中的菜单项的左边是显示单选按钮还是

选中标记。值为true时将显示单选按钮标记,值为false时显示选中标记。

(6)Shortcut属性:用来获取或设置一个值,该值指示与菜单项相关联的快捷键。

(7)ShowShortcut 属性:用来获取或设置一个值,该值指示与菜单项关联的快捷键是否在菜单项标题的

旁边显示。如果快捷组合键在菜单项标题的旁边显示,该属性值为 true,如果不显示快捷键,该属性值为

false。默认值为true。

(8)MdiList属性:用来获取或设置一个值,通过该值指示是否用在关联窗体内显示的多文档界面(MDI)

子窗口列表来填充菜单项。若要在该菜单项中显示MDI子窗口列表,则设置该属性值为true,否则设置该

属性的值为false。默认值为false。

3.菜单项的常用事件 菜单项的常用事件主要有Click事件,该事件在用户单击菜单项时发生。

24、多窗体程序设计 Windows应用程序很少只由一个窗体组成,一般情况下一个应用程序均拥有很多个窗体。

C#项目刚建立时只有一个名为Form1的窗体,要建立多窗体应用程序应首先为项目添加窗体,添加窗体的方法如下。

(1) 单击工具栏上的按钮 或执行【项目】→【添加Windows窗体】命令将会出现如图 10-17 所示的【添加新项】对话框。

(2) 在该对话框的【模板】下面的列表框中选中【Windows 窗体】图标,在【名称】文本框中输

入窗体名,然后单击【打开】按钮,即为应用程序添加了一个窗体。

25、MDI 应用程序设计

1.MDI应用程序的概念

在前面的章节中,所创建的都是单文档界面(SDI)应用程序。这样的程序(如记事本和画图程序)仅支

持一次打开一个窗口或文档。如果需要编辑多个文档,必须创建SDI应用程序的多个实例。而使用多文档

界面(MDI)程序(如Word和AdobePhotoshop)时,用户可以同时编辑多个文档。MDI程序中的应用程

序窗口称为父窗口,应用程序内部的窗口称为子窗口。虽

然 MDI应用程序可以具有多个子窗口, 但是每个子窗口却

只能有一个父窗口。此外,处于活动状态的子窗口最大数

目是 1。子窗口本身不能再成为父窗口,而且不能移动到

它们的父窗口区域之外。除此以外,子窗口的行为与任何

其他窗口一样(如可以关闭、最小化和调整大小等)。一个

子窗口在功能上可能与父窗口的其他子窗口不同,例如,

一个子窗口可能用于编辑图像,另一个子窗口可能用于编

辑文本,第 3 个子窗口可以使用图形来显示数据,但是所

有的窗口都属于相同的MDI父窗口。图 10-19 是一个典型

的 MDI应用程序。外面的窗口是应用程序窗口,里面的两

个小窗口是 MDI子窗口。

2.与 MDI应用程序设计有关的属性、方法和事件

常用的MDI父窗体属性如下。

(1)ActiveMdiChild属性:该属性用来表示当前活动的MDI子窗口,如果当前没有子窗口,则返回null。

(2)IsMdiContainer属性:该属性用来获取或设置一个值,该值指示窗体是否为多文档界面(MDI)子窗

体的容器,即MDI父窗体。值为true时,表示是父窗体,值为false时,表示不是父窗体。

(3)MdiChildren属性:该属性以窗体数组形式返回MDI子窗体,每个数组元素对应一个 MDI子窗体。

常用的MDI子窗体的属性有:

(1)IsMdiChild属性:该属性用来获取一个值,该值指示该窗体是否为多文档界面(MDI)的子窗体。值

为 true时,表示是子窗体,值为false时,表示不是子窗体。

(2)MdiParent属性:该属性用来指定该子窗体的MDI父窗体。与MDI应用程序设计有关的方法中,一

般只使用父窗体的LayoutMdi方法,该方法的调用格式如下:

MDI父窗体名.LayoutMdi(Value);

该方法用来在MDI父窗体中排列MDI子窗体,以便导航和操作MDI子窗体。参数Value决定排列方式,

取值有:MdiLayout.ArrangeIcons(所有 MDI 子窗体以图标的形式排列在 MDI 父窗体的工作区内)、

MdiLayout.TileHorizontal (所有MDI子窗口均水平平铺在MDI父窗体的工作区内)、 MdiLayout.TileVertical

(所有 MDI 子窗口均垂直平铺在 MDI 父窗体的工作区内)和 MdiLayout.Cascade(所有 MDI 子窗口均层

叠在 MDI 父窗体的工作区内)。常用的 MDI 父窗体的事件是 MdiChildActivate,当激活或关闭一个 MDI

子窗体时将发生该事件。

3.菜单合并

父窗体和子窗体可以使用不同的菜单,这些菜单会在选择子窗体的时候合并。如果需要指定菜单的合并方

式,程序员可以设置每个菜单项的MergeOrder属性和MergeType属性.

(1)MergeOrder属性:用来确定当两个菜单合并时菜单项出现的顺序,具有较低

MergeOrder的菜单项会首先出现。

(2)MergeType属性:当合并的两个菜单的某些菜单项的MergeOrder属性值相等时,

使用该属性可以控制这些菜单项的显示方式。

26、键盘事件处理

键盘事件在用户按下键盘上的键时发生,可分为两类。第一类是KeyPress事件,当按下的键表示的是一个

ASCII 字符时就会触发这类事件,可通过它的 KeyPressEventArgs 类型参数的属性 KeyChar 来确定按下键

的 ASCII 码。使用 KeyPress 事件无法判断是否按下了修改键(例如 Shift,Alt 和 Ctrl 键),为了判断这些

动作, 就要处理KeyUp 或KeyDown事件, 这些事件组成了第二类键盘事件。 该类事件有一个KeyEventArgs

类型的参数,通过该参数可以测试是否按下了一些修改键、功能键等特殊按键信息。

1.KeyPressEventArgs类的主要属性(KeyPress事件的一个参数类型)

(1)Handled属性:用来获取或设置一个值,该值指示是否处理过KeyPress事件。

(2)KeyChar属性:用来获取按下的键对应的字符,通常是该键的ASCII码。

2.KeyEventArgs类的主要属性(KeyUp和 KeyDown事件的一个参数)

(1)Alt属性:用来获取一个值,该值指示是否曾按下Alt键。

(2)Control属性:用来获取一个值,该值指示是否曾按下Ctrl键。

(3)Shift属性:用来获取一个值,该值指示是否曾按下Shift键。

(4)Handled属性:用来获取或设置一个值,该值指示是否处理过此事件。

(5)KeyCode属性:以 Keys枚举型值返回键盘键的键码,该属性不包含修改键(Alt、Control和 Shift键)

信息,用于测试指定的键盘键。

(6)KeyData 属性:以 Keys 枚举类型值返回键盘键的键码,并包含修改键信息,用于判断关于按下键盘

键的所有信息。

(7)KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键盘键的数字表示。

(8)Modifiers 属性:以 Keys 枚举类型值返回所有按下的修改键(Alt、Control 和 Shift 键),仅用于判断

修改键信息。

27、鼠标事件处理

对鼠标操作的处理是应用程序的重要功能之一,在VisualC#中有一些与鼠标操作相关的事件,利用它们可

以方便地进行与鼠标有关的编程。

(1)MouseEnter事件:在鼠标指针进入控件时发生。

(2)MouseMove事件:在鼠标指针移到控件上时发生。事件处理程序接收一个MouseEventArgs类型的参

数,该参数包含与此事件相关的数据。该参数的主要属性及其含义如下。

Button属性:用来获取曾按下的是哪个鼠标按钮。该属性是MouseButtons枚举型的值,

取值及含义如下:Left(按下鼠标左按钮)、Middle(按下鼠标中按钮)、Right(鼠标右按钮)、None(没有按下鼠标按钮)、 XButton1 (按下了第一个XButton按钮, 仅用于Microsoft智能鼠标浏览器) 和XButton2 (按下了第二个XButton按钮,仅用于 Microsoft智能鼠标浏览器)

Clicks属性:用来获取按下并释放鼠标按钮的次数。

Delta属性:用来获取鼠标轮已转动的制动器数的有符号计数。制动器是鼠标轮的一个凹口。

X 属性:用来获取鼠标所在位置的x坐标。

Y 属性:用来获取鼠标所在位置的y坐标。

(3)MouseHover事件:当鼠标指针悬停在控件上时将发生该事件。

(4)MouseDown事件:当鼠标指针位于控件上并按下鼠标键时将发生该事件。事件处理程序也接收一个

MouseEventArgs类型的参数。

(5)MouseWheel事件:在移动鼠标轮并且控件有焦点时将发生该事件。该事件的事件处理程序接收一个

MouseEventArgs类型的参数

(6)MouseUp 事件:当鼠标指针在控件上并释放鼠标键时将发生该事件。事件处理程序也接收一个

MouseEventArgs类型的参数。

(7)MouseLeave事件:在鼠标指针离开控件时将发生该事件。

C#窗体控件简介ListBox(需整理)的更多相关文章

  1. C#窗体控件简介ListBox

    ListBox 控件 ListBox 控件又称列表框,它显示一个项目列表供用户选择.在列表框中,用户 一次可以选择一项,也可以选择多项. 1.常用属性: (1) Items属性: 用于存放列表框中的列 ...

  2. WinForm控件使用文章收藏整理完成

    对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面. 基础 - 常用控件 C# WinForm开发系列 - CheckBox/Button/Lab ...

  3. C#控件及常用设计整理

    1.窗体  1.常用属性  (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体.  (2) WindowState属性:  用来获取或设置窗体的窗口状态. 取值有三 ...

  4. winform窗体控件(全)

    回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...

  5. (转)sl简单自定义win窗体控件

    sl简单自定义win窗体控件      相信大家接触过不少win窗体控件ChildWin子窗口就的sl自带的一个  而且网上也有很多类似的控件,而今天我和大家分享下自己制作个win窗体控件,希望对初学 ...

  6. [原创]C#按比例缩放窗体控件及字体

    按照比例缩放窗体控件及字体,如需等比例缩放,只需将x,y的比例设置成相同即可. 为了减小误差,建议使用原始尺寸来计算比例. private float X, Y; private bool b = f ...

  7. 用于列出选项的Windows窗体控件

    可以提供选项列表的控件有ListBox.ComboBox.CheckedListBox,如何正确的使用和选择这些控件,下面对此进行讨论.首先对这三种控件的功能分别进行说明: ListBox ListB ...

  8. ASP.NET中 WebForm 窗体控件使用及总结【转】

    原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...

  9. C#遍历窗体控件(原文出自http://www.liangshunet.com/ca/201403/286434593.htm)

    一.C#遍历窗体控件 主要遍历属于窗体(Form)的控件(Controls),假如窗体中有 Panel.Button 和 TextBox 控件,遍历代码如下: /// <summary> ...

随机推荐

  1. Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参

    Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入 ...

  2. Tomcat的work目录作用

    Tomcat的work目录作用 很多网友喜欢把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作 ...

  3. 20145317《网络对抗》Exp4 恶意代码分析

    20145317<网络对抗>Exp4 恶意代码分析 一.基础问题回答 (1)总结一下监控一个系统通常需要监控什么.用什么来监控. 通常监控以下几项信息: 注册表信息的增删添改 系统上各类程 ...

  4. CRT中的时间(time_t和tm)(转载)

    转载:http://blog.csdn.net/bokee/article/details/5330682 首先介绍基本的时间概念. 时间一般分为两种,一种是本地时间(Local Time),一种是协 ...

  5. 《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 2 章 答案

    判断对错1.编写程序的好方法是立即键入一些代码,然后调试它,直到它工作.2.可以在不使用编程语言的情况下编写算法.3.程序在写入和调试后不再需要修改.4.Python 标识符必须以字母或下划线开头.5 ...

  6. 嵌入式系统 Boot Loader 技术内幕【转】

    本文转载自:https://www.ibm.com/developerworks/cn/linux/l-btloader/ 本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Lo ...

  7. 自己写操作系统---bootsector篇

    其实博主本来想在寒假自己写一个OSkernal的,高高兴兴的影印了本<一个操作系统的实现>. 然后又去图书馆借来<30天自制操作系统>和<X86/X64体系探索编程> ...

  8. 怎么在VS监视DataSet类型的数据

    旧版本 先监视DataSet,打开dataset,dataset下面有一个tablesTables打开有一个非公共成员,然后下面有一个List,List中存储了每一张表的信息 下图所示的List下面的 ...

  9. 【第十一章】 springboot + mongodb(简单查询)

    1.mongodb在mac上的安装 下载mongodb,https://www.mongodb.org/ 解压缩到一个指定文件夹,如:/Users/enniu1/Desktop/zjg/mongodb ...

  10. Facebook广告API系列 1

    Facebook广告API系列 1 前言 最近遇到大坑了,居然要去对接facebook的广告API,之前以为是跟鹅厂一样的API体系,看了半天Facebook的文档,冷汗直冒.... 这得一点一点的讲 ...