




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 6 章章 窗体应用程序设计窗体应用程序设计6.1 一个简单的文本编辑器一个简单的文本编辑器6.2 组件的公共属性、事件和方法组件的公共属性、事件和方法6.3 常用的控件常用的控件6.4常用的对话框常用的对话框6.5 消息对话框消息对话框6.6 菜单和工具栏的设计菜单和工具栏的设计6.7 实例实例多文档界面编辑器多文档界面编辑器本本 章章 内内 容容C#程序设计教程蒙祖强编著6.1 一个简单的文本编辑器一个简单的文本编辑器应用程序一个简单的文本编辑器应用程序: 可以实现对可以实现对txt文件的读取和保存以及对字符的简单文件的读取和保存以及对字符的简单编辑操作。编辑操作。C#程序设计教程蒙祖
2、强编著6.1.1 创建文本编辑器程序的步骤创建文本编辑器程序的步骤6.1 一个简单的文本编辑器(1)创建)创建C#窗体应用程序窗体应用程序TxtEditApp:将窗体:将窗体Form1的的text属属性值设置为性值设置为“简单的文本编辑器简单的文本编辑器”,然后在窗体上分别添加控,然后在窗体上分别添加控件件richTextBox1和组件和组件openFileDialog1、saveFileDialog1、toolStrip1,并将控件,并将控件richTextBox1的的Dock属性值设置为属性值设置为Fill,使之充满整个窗体。使之充满整个窗体。编辑器界面编辑器界面C#程序设计教程蒙祖强编著
3、6.1.1 创建文本编辑器程序的步骤创建文本编辑器程序的步骤6.1 一个简单的文本编辑器(2)选择菜单)选择菜单“项目项目|添加组件添加组件”命令,在打开的命令,在打开的“添加新项添加新项”对话框中选择对话框中选择“Windows窗体窗体”项,然后单击项,然后单击“添加添加”按钮,即按钮,即可为程序添加一个新的窗体(其默认名为可为程序添加一个新的窗体(其默认名为Form2)。在新窗体上)。在新窗体上添加几个添加几个Label控件,以显示相关信息:控件,以显示相关信息:C#程序设计教程蒙祖强编著6.1.1 创建文本编辑器程序的步骤创建文本编辑器程序的步骤6.1 一个简单的文本编辑器(3)点击控件
4、)点击控件richTextBox1上方的菜单栏,然后依次输入相应的上方的菜单栏,然后依次输入相应的菜单项:菜单项:C#程序设计教程蒙祖强编著6.1.1 创建文本编辑器程序的步骤创建文本编辑器程序的步骤6.1 一个简单的文本编辑器 (4)在菜单设计界面中双击)在菜单设计界面中双击“Open file”项,在自动形成的项,在自动形成的openFileToolStripMenuItem_Click()函数中编写相关代码,结果如函数中编写相关代码,结果如下:下:/“Open file”菜单项菜单项private void openFileToolStripMenuItem_Click(object s
5、ender, EventArgs e) openFileDialog1.Filter = txt files(*.txt)|*.txt; if (openFileDialog1.ShowDialog() = DialogResult.OK) richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText); C#程序设计教程蒙祖强编著6.1.1 创建文本编辑器程序的步骤创建文本编辑器程序的步骤6.1 一个简单的文本编辑器用同样的方法为其他菜单项编写事件处理代码,结果如下:用同样的方法为其他菜单项编写
6、事件处理代码,结果如下:/“Save file”菜单项菜单项private void saveFileToolStripMenuItem_Click(object sender, EventArgs e) saveFileDialog1.Filter = txt files(*.txt)|*.txt; if (saveFileDialog1.ShowDialog() = DialogResult.OK) richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText); /“Exit”菜单项菜单项p
7、rivate void exitToolStripMenuItem_Click(object sender, EventArgs e) Close();/“About”菜单项菜单项private void aboutToolStripMenuItem_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.ShowDialog();C#程序设计教程蒙祖强编著6.1.1 创建文本编辑器程序的步骤创建文本编辑器程序的步骤6.1 一个简单的文本编辑器(4)执行该程序后,选择相应的菜单命令,可以打开)执行该程序后,选择相应的菜单命令
8、,可以打开txt文件,文件,也可以在也可以在richTextBox1编辑文本后保存到编辑文本后保存到txt文件中:文件中:C#程序设计教程蒙祖强编著6.1.1 创建文本编辑器程序的步骤创建文本编辑器程序的步骤6.1 一个简单的文本编辑器【说明说明】 组件组件是指没有界面的组件(运行时不可见);是指没有界面的组件(运行时不可见);控件控件是指有界面的组件(运行时可见)。是指有界面的组件(运行时可见)。但有的时候也把两者统称为组件,其具体意义要根据上下文来决但有的时候也把两者统称为组件,其具体意义要根据上下文来决定。定。C#程序设计教程蒙祖强编著6.2 组件的公共属性、事件和方法C#中的组件都继承
9、中的组件都继承System.Object类类窗体控件都继承了窗体控件都继承了System.Windows.Forms.Control类(该类也继类(该类也继承承Object类)类)因此了解因此了解System.Object类的一些常用属性、事件和方法对掌握下类的一些常用属性、事件和方法对掌握下文要介绍的常用组件的使用方法有着事半功倍的效果。文要介绍的常用组件的使用方法有着事半功倍的效果。C#程序设计教程蒙祖强编著6.2.1 Object类类6.2 组件的公共属性、事件和方法1. public virtual bool Equals(object obj)该方法用于判断当前对象和给定的对象是否相
10、等。在默认情况该方法用于判断当前对象和给定的对象是否相等。在默认情况下(没有重写该方法时),对象下(没有重写该方法时),对象a和和b相等是指相等是指a和和b是非空的且指是非空的且指向同一个对象。向同一个对象。由于由于Equals()方法是一个虚方法,我们可以在定义的类中重写它。方法是一个虚方法,我们可以在定义的类中重写它。这样,对象这样,对象a和和b在什么情况下才算相等是完全由重写代码来决定。在什么情况下才算相等是完全由重写代码来决定。实际上,实际上,C#的许多类都重写了的许多类都重写了Equals()方法。方法。 2. public virtual int GetHashCode()GetH
11、ashCode()方法返回方法返回object对象的哈希码,哈希码是通过一定对象的哈希码,哈希码是通过一定的算法并根据对象在内存中的地址来计算的。此算法可以保证不的算法并根据对象在内存中的地址来计算的。此算法可以保证不同对象的哈希码重复的可能性很小。同对象的哈希码重复的可能性很小。 C#程序设计教程蒙祖强编著6.2.1 Object类类6.2 组件的公共属性、事件和方法2. public virtual string ToString()在定义的类中可以重写在定义的类中可以重写ToString()方法。如果没有重写,则该方法方法。如果没有重写,则该方法返回对象所属类的名称。实际上,返回对象所属
12、类的名称。实际上,C#提供的类几乎都重写了该方提供的类几乎都重写了该方法,其中大部分的功能是法,其中大部分的功能是将相应类型的数据转化为字符串数据将相应类型的数据转化为字符串数据。C#程序设计教程蒙祖强编著6.2.2 Control类类6.2 组件的公共属性、事件和方法 Control类的属性、方法和事件是所有窗体控件供有的。了解类的属性、方法和事件是所有窗体控件供有的。了解Control类的特征对窗体应用程序设计是至关重要的。类的特征对窗体应用程序设计是至关重要的。 1. Control类的属性类的属性(1)Text属性属性Text属性值就是控件显示的文本内容,也是用户输入字符创串地属性值就
13、是控件显示的文本内容,也是用户输入字符创串地方,其类型为字符串型。在程序运行的过程中,该属性值可读可方,其类型为字符串型。在程序运行的过程中,该属性值可读可写。如写。如 Edit1-Text = 北京奥运北京奥运; /向编辑框写字串向编辑框写字串 String str = Edit1-Text; /读取编辑框中的内容读取编辑框中的内容(2)Anchor属性属性该属性用于设定控件与其容器控件在四个边沿(左、右、上、下)该属性用于设定控件与其容器控件在四个边沿(左、右、上、下)距离上的固定位置关系。距离上的固定位置关系。Anchor属性是一种集合类型,可以同时取多个值,如:属性是一种集合类型,可以
14、同时取多个值,如:richTextBox1.Anchor = (AnchorStyles.Top|AnchorStyles.Bottom);C#程序设计教程蒙祖强编著6.2.2 Control类类6.2 组件的公共属性、事件和方法(3)Dock属性属性该属性用于设定子控件在其容器控件中的填充方式,其取值和意该属性用于设定子控件在其容器控件中的填充方式,其取值和意义是:义是:DockStyle.Fill:任何时候子控件都填充整个容器控件:任何时候子控件都填充整个容器控件DockStyle.None:子控件按照设计时的界面出现,不随容器控件:子控件按照设计时的界面出现,不随容器控件的大小发生变化而
15、变化的大小发生变化而变化DockStyle.Top、DockStyle.Bottom、DockStyle.Left、DockStyle.Right:分别表示子控件向上、向下、向左和向右充满:分别表示子控件向上、向下、向左和向右充满半个容器控件,容器控件的大小发生变化时子控件仍然保持这种半个容器控件,容器控件的大小发生变化时子控件仍然保持这种状态状态C#程序设计教程蒙祖强编著6.2.2 Control类类6.2 组件的公共属性、事件和方法(3)Dock属性属性该属性用于设定子控件在其容器控件中的填充方式,其取值和意该属性用于设定子控件在其容器控件中的填充方式,其取值和意义是:义是:DockSty
16、le.Fill:任何时候子控件都填充整个容器控件:任何时候子控件都填充整个容器控件DockStyle.None:子控件按照设计时的界面出现,不随容器控件:子控件按照设计时的界面出现,不随容器控件的大小发生变化而变化的大小发生变化而变化DockStyle.Top、DockStyle.Bottom、DockStyle.Left、DockStyle.Right:分别表示子控件向上、向下、向左和向右充满:分别表示子控件向上、向下、向左和向右充满半个容器控件,容器控件的大小发生变化时子控件仍然保持这种半个容器控件,容器控件的大小发生变化时子控件仍然保持这种状态状态Control类的其他属性,请参见教材中
17、表类的其他属性,请参见教材中表6.1 。C#程序设计教程蒙祖强编著6.2.2 Control类类6.2 组件的公共属性、事件和方法2. Control类的方法类的方法(1)FindForm()方法方法该方法返回控件所在的窗体。该方法返回控件所在的窗体。(2)Focus()方法方法 该方法的作用是使控件获得焦点。该方法的作用是使控件获得焦点。(3)GetContainerControl()方法方法 该方法返回父控件链的下一个该方法返回父控件链的下一个ContainerControl。(4)Hide()方法方法该方法用于隐藏控件,使之不可见,但控件并没有被销毁,相当于令该方法用于隐藏控件,使之不可
18、见,但控件并没有被销毁,相当于令visible 属性值为属性值为false。C#程序设计教程蒙祖强编著6.2.2 Control类类6.2 组件的公共属性、事件和方法2. Control类的方法类的方法(5)Show()方法方法 该方法用于显示控件,使之可见,但控件并不是创建一个新的控件,而是该方法用于显示控件,使之可见,但控件并不是创建一个新的控件,而是显示已有的控件,相当于令显示已有的控件,相当于令visible 属性值为属性值为true。(6)Scale(int m)方法方法将控件放大或缩小控件为原来的将控件放大或缩小控件为原来的m倍。倍。(7)Contains(Control ctl)
19、方法方法该方法判断控件该方法判断控件ctl是否是当前控件的子控件,如果是则返回是否是当前控件的子控件,如果是则返回true,否则返,否则返回回false。(8)GetTopLevel()方法方法判断当前控件是否为顶层控件,如果是则返回判断当前控件是否为顶层控件,如果是则返回true,否则返回,否则返回false。C#程序设计教程蒙祖强编著6.2.2 Control类类6.2 组件的公共属性、事件和方法3. Control类的事件类的事件点击、滚动、移动鼠标,按下键盘等操作都会产生相应的事件,点击、滚动、移动鼠标,按下键盘等操作都会产生相应的事件,事件发生时会调用相应的事件处理函数。这种处理函数
20、实际上也事件发生时会调用相应的事件处理函数。这种处理函数实际上也是是Control类的方法,与上面方法不同的是,事件处理函数是在事类的方法,与上面方法不同的是,事件处理函数是在事件发生时由系统自动调用(而不是由用户代码调用);而上面方件发生时由系统自动调用(而不是由用户代码调用);而上面方法则使由用户代码调用。显然,利用事件和处理函数之间的自动法则使由用户代码调用。显然,利用事件和处理函数之间的自动调用关系,可以方便实现上面方法难以完成的一些功能。调用关系,可以方便实现上面方法难以完成的一些功能。Control类定义了大量的事件,当在属性编辑框中双击事件名右边类定义了大量的事件,当在属性编辑框
21、中双击事件名右边的空白处时即可自动产生事件处理函数的框架,我们只需在函数的空白处时即可自动产生事件处理函数的框架,我们只需在函数框架中编写相应的事件处理代码即可。框架中编写相应的事件处理代码即可。C#程序设计教程蒙祖强编著6.2.2 Control类类6.2 组件的公共属性、事件和方法3. Control类的事件类的事件鼠标事件鼠标事件ClickDoubleClickMouseEnterMouseLeaveMouseDownMouseUpMouseMoveMouseHover键盘事件键盘事件KeyPressKeyDownKeyUp拖动事件拖动事件DragDropDragEnterDragLea
22、veDragOver 焦点事件焦点事件EnterLeave C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件(1)Button控件控件(Button控件具有一定的代表性,这里稍微详细地介绍此控件)控件具有一定的代表性,这里稍微详细地介绍此控件)Button控件是最常用的按钮控件,几乎在窗体应用程序中都涉及控件是最常用的按钮控件,几乎在窗体应用程序中都涉及到它。它允许用户通过单击操作来执行某些代码。单击一个按钮到它。它允许用户通过单击操作来执行某些代码。单击一个按钮相当于执行相应的一个函数,该函数就是单击相当于执行相应的一个函数,该函数就是单击Button按钮时产生按
23、钮时产生的的Click事件的事件处理函数。事件的事件处理函数。在设计界面中双击在设计界面中双击Button控件(或选中该按钮后在属性框中双击控件(或选中该按钮后在属性框中双击“Click”项右边的空白处)即可自动形成该函数框架:项右边的空白处)即可自动形成该函数框架:private void button1_Click(object sender, EventArgs e) /事件处理代码事件处理代码当单击当单击Button控件时,该函数被执行。我们需要做的是,根据需控件时,该函数被执行。我们需要做的是,根据需要在该函数中编写相应的代码,以完成既定的功能。要在该函数中编写相应的代码,以完成既定
24、的功能。C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件button1_Click(object sender, EventArgs e)有两个参数(其他许多有两个参数(其他许多事件处理函数也有这两个参数):事件处理函数也有这两个参数):sender:保存了导致该事件发生的控件:保存了导致该事件发生的控件e:则保存了所发生的事件:则保存了所发生的事件例如,我们可以用下列代码显示这两个参数的相关信息:例如,我们可以用下列代码显示这两个参数的相关信息:private void button1_Click(object sender, EventArgs e) Butto
25、n bt = (Button)sender; textBox1.Text = bt.Text; Type ty = e.GetType(); textBox2.Text = ty.ToString(); 结果结果textBox1和和textBox2分别显示分别显示“button1”和和“System.Windows.Forms. MouseEventArgs”。C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件(2)RadioButton按钮(单选按钮)按钮(单选按钮)Checked属性属性:当该值为:当该值为true时处于选中状态,为时处于选中状态,为false时处
26、于未时处于未选中状态,反之亦然。选中状态,反之亦然。RadioButton按钮具有排斥性,即当一个按钮为选中状态时,其按钮具有排斥性,即当一个按钮为选中状态时,其他的他的RadioButton则处于未被选中状态则处于未被选中状态CheckedChanged事件事件:当单选按钮的状态发生改变(:当单选按钮的状态发生改变(Checked属性值由属性值由true变为变为false,或由,或由false变为变为true)时,)时,CheckedChanged事件被触发,紧接着执行事件被触发,紧接着执行CheckedChanged()方方法。因此,希望在单选按钮的状态发生改变时完成一些操作,相法。因此,
27、希望在单选按钮的状态发生改变时完成一些操作,相应代码应该在该方法中编写:应代码应该在该方法中编写:private void radioButton1_CheckedChanged(object sender, EventArgs e) /事件处理代码事件处理代码C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件(3)CheckBox按钮(复选按钮)按钮(复选按钮)Checked属性:属性:复选按钮与单选按钮很相似,它也通常成组出现,复选按钮与单选按钮很相似,它也通常成组出现,其选中与否也完全由它的其选中与否也完全由它的Checked属性值来决定。不同的是,在属性值来决
28、定。不同的是,在同一时刻允许有同一时刻允许有0个或多个复选按钮被选中。个或多个复选按钮被选中。CheckedChanged事件:事件:其触发方式和处理函数的调用和编写方其触发方式和处理函数的调用和编写方法与单选按钮的相同。法与单选按钮的相同。C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件【例例6.1】 按钮类控件的应用举例。按钮类控件的应用举例。本例创建一个窗体应用程序实现的功能包括:本例创建一个窗体应用程序实现的功能包括:(1)将输入的字符串转换为相应的大写或小写字符串;)将输入的字符串转换为相应的大写或小写字符串;(2)可以指定转换的方式(大写或小写),如果不
29、指定方式则原)可以指定转换的方式(大写或小写),如果不指定方式则原样输出;样输出;(3)可以限制输入字符的范围:字母、数字或其他可视字符。)可以限制输入字符的范围:字母、数字或其他可视字符。程序界面程序界面C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件【例例6.1】 按钮类控件的应用举例。按钮类控件的应用举例。本例创建一个窗体应用程序实现的功能包括:本例创建一个窗体应用程序实现的功能包括:(1)将输入的字符串转换为相应的大写或小写字符串;)将输入的字符串转换为相应的大写或小写字符串;(2)可以指定转换的方式(大写或小写),如果不指定方式则原)可以指定转换的方式(大
30、写或小写),如果不指定方式则原样输出;样输出;(3)可以限制输入字符的范围:字母、数字或其他可视字符。)可以限制输入字符的范围:字母、数字或其他可视字符。设计思想:设计思想:(1)字符串的大、小写转换可以用类)字符串的大、小写转换可以用类string的的ToLower()和和ToUpper()方法来实现;方法来实现;(2)转换方式的指定通过单选按钮来辅助完成;)转换方式的指定通过单选按钮来辅助完成;(3)字符输入范围的限制则由辅助完成,其中还用到了)字符输入范围的限制则由辅助完成,其中还用到了TextBox类型控件的类型控件的KeyPress事件和事件和KeyUp事件。事件。C#程序设计教程蒙
31、祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件程序的关键代码如下:程序的关键代码如下: public partial class Form1 : Form private int flag = 0; private string str = ; public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) str = textBox1.Text; if (flag = 1) str = str.ToLower(); else if (flag = 2) str
32、 = str.ToUpper(); /如果如果flag=0,则表示原样输出,则表示原样输出 textBox2.Text = str; C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件 private void radioButton1_CheckedChanged(object sender, EventArgs e) flag = 1; /1表示转换为小写字符表示转换为小写字符 private void radioButton2_CheckedChanged(object sender, EventArgs e) flag = 2; /2表示转换为大写字符表示转换
33、为大写字符 C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) char c = e.KeyChar; int ascii = c;/获取字符的获取字符的ASCII码码 if (ascii = 65 & ascii = 97 & ascii = 48 & ascii = 57) /c为数字时为数字时 if (checkBox2.Checked) str += c.ToString(); /如果允许输入数字如果允许输入数字 else /c
34、为其他可视符号为其他可视符号 /如果允许输入其他可视符号如果允许输入其他可视符号 if (checkBox3.Checked) str += c.ToString(); C#程序设计教程蒙祖强编著6.3.1 按钮类控件按钮类控件6.3 常用的控件 private void textBox1_KeyUp(object sender, KeyEventArgs e) textBox1.Text = str; textBox1.Focus(); /将光标置于最后一个字符后面将光标置于最后一个字符后面 textBox1.Select(textBox1.Text.Length, 0); C#程序设计教程
35、蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件1. TextBox控件(文本框)控件(文本框)文本框经常用于获取用户输入的文本或显示程序以文本方式输出文本框经常用于获取用户输入的文本或显示程序以文本方式输出的结果,可以用于简单的文本编辑操作。的结果,可以用于简单的文本编辑操作。 (1)重要属性)重要属性Text属性属性 该属性是文本框最常用的属性,其显示的文本正是包含在此属性该属性是文本框最常用的属性,其显示的文本正是包含在此属性中,类型为中,类型为string。默认情况下,。默认情况下,Text属性可以保存最大长度为属性可以保存最大长度为2048个字符。该属性可读可写,如:个字
36、符。该属性可读可写,如:textBox1.Text = 中华人民共和国!中华人民共和国!;string s = textBox1.Text;SelectedText属性属性 该属性值返回文本框中已被选中的文本。该属性值返回文本框中已被选中的文本。SelectionLength属性属性 该属性值返回文本框中已被选中的文本的长度,即该属性值返回文本框中已被选中的文本的长度,即SelectedText的的长度。长度。C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件SelectionStart属性属性 该属性值返回文本框中已被选中的文本的开始位置,如果没有文该属性值返回文本
37、框中已被选中的文本的开始位置,如果没有文本被选中,则返回紧跟在当前光标后面的字符的位置。本被选中,则返回紧跟在当前光标后面的字符的位置。Modified属性属性 当更改文本框的内容时,该属性被设置为当更改文本框的内容时,该属性被设置为true。ReadOnly属性属性当当ReadOnly属性值为属性值为true时文本框中的字符只能被读(如可复制时文本框中的字符只能被读(如可复制等),而不能进行写操作(如修改、删除等)。等),而不能进行写操作(如修改、删除等)。ReadOnly属性的属性的默认值为默认值为false,这时文本框可读可写。,这时文本框可读可写。PasswordChar属性属性 当当
38、PasswordChar属性值设置为属性值设置为“*”,在用该编辑框输入字符时,在用该编辑框输入字符时它显示的都是它显示的都是“*”(显示星号);当然也可以(显示星号);当然也可以PasswordChar属属性值设置为其它字符,那么在输入时就显示相应的字符。该属性性值设置为其它字符,那么在输入时就显示相应的字符。该属性的默认值为空,这时输入的字符被原样显示。的默认值为空,这时输入的字符被原样显示。C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件BorderStyle属性属性BorderStyle属性有三个值:属性有三个值:None、FixedSingle和和Fixe
39、d3D(默认(默认值),不同取值的效果如下图:值),不同取值的效果如下图:HideSelection属性属性当取值为当取值为true时,如果文本框失去焦点,则被选中的文本不再保时,如果文本框失去焦点,则被选中的文本不再保持被选中状态;当该属性取值为持被选中状态;当该属性取值为false时,如果文本框失去焦点,时,如果文本框失去焦点,则被选中的文本仍然保持被选中状态。则被选中的文本仍然保持被选中状态。C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件Multiline属性属性 Multiline为布尔型属性。当其取值为为布尔型属性。当其取值为false(默认值)时,表示
40、只(默认值)时,表示只能输入一行字符;当取值为能输入一行字符;当取值为true时,表示允许输入多行字符,时,表示允许输入多行字符,rn表示换行。例如,下列代码将在表示换行。例如,下列代码将在textBox1中输出两行字符:中输出两行字符:textBox1.Text += aaaaaaarn;textBox1.Text += ccc;ScrollBars属性属性该属性用于设置文本框的滚动条。它有四种取值:该属性用于设置文本框的滚动条。它有四种取值:uNone:没有滚动条:没有滚动条uHorizontal:只有水平方向上有滚动条:只有水平方向上有滚动条uVertical:只有垂直方向上有滚动条:只
41、有垂直方向上有滚动条uBoth:垂直和水平方向上都有滚动条:垂直和水平方向上都有滚动条C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件Lines属性属性 当当Multiline属性为属性为true时,文本框中允许编辑多行字符。利时,文本框中允许编辑多行字符。利用文本框的用文本框的Lines属性则可以实现逐行访问。属性则可以实现逐行访问。 Lines属性值的类型为字符串数组属性值的类型为字符串数组string。例如,可以用下列语句将文本框例如,可以用下列语句将文本框textBox1中的数据逐行读出来:中的数据逐行读出来:string lines = textBox1.
42、Lines;for (int i = 0; i lines.Length; i+) /处理第处理第i+1行数据行数据linesi C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件(2)重要方法)重要方法SelectAll()方法方法该方法用于选中文本框中所有的文本。该方法用于选中文本框中所有的文本。Select(int start, int length)方法方法该方法用于选中文本框中从索引为该方法用于选中文本框中从索引为start的字符开始一共的字符开始一共length字字符的文本。符的文本。Undo()方法方法该方法用于撤销上一次的操作。该方法用于撤销上一次的操
43、作。Copy()方法方法该方法用于将文本框中被选中的字符复制到剪贴板中。该方法用于将文本框中被选中的字符复制到剪贴板中。Paste()方法方法该方法用于将剪贴板中的内容替换到文本框中被选中的内容。该方法用于将剪贴板中的内容替换到文本框中被选中的内容。Cut()方法方法该方法用于将文本框中被选中的字符剪切到剪贴板中。该方法用于将文本框中被选中的字符剪切到剪贴板中。C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件(3)重要事件)重要事件ModifiedChanged事件事件当当Modified属性值发生变动时该事件发生。属性值发生变动时该事件发生。TextChanged
44、事件事件一旦文本框的内容发生改变,都会立即触发该事件,从而调用相一旦文本框的内容发生改变,都会立即触发该事件,从而调用相应的事件处理函数。应的事件处理函数。C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件2. RichTextBox控件控件(1)RichTextBox控件重要的属性控件重要的属性SelectionColor属性属性该属性用于设置被选中文本的颜色。例如:该属性用于设置被选中文本的颜色。例如:richTextBox1.SelectionColor = Color.Red; /红色红色SelectionFont属性属性该属性用于设置被选中文本的字体。例如:
45、该属性用于设置被选中文本的字体。例如:richTextBox1.SelectionFont = new Font(隶书隶书, 18, FontStyle.Bold | FontStyle.Italic | FontStyle.Underline);C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件(2)RichTextBox控件重要的方法控件重要的方法Find()方法方法该方法用于在该方法用于在RichTextBox控件中寻找一个给定的字符串,返回字控件中寻找一个给定的字符串,返回字符串在符串在RichTextBox控件中第一个匹配字符的索引,如果查找失败控件中第一个
46、匹配字符的索引,如果查找失败则返回则返回-1。它重载有多个版本,常用的包括:。它重载有多个版本,常用的包括:int richTextBox1.Find(string str);int richTextBox1.Find(string str, RichTextBoxFinds option);int richTextBox1.Find(string str, int start, RichTextBoxFinds option);int richTextBox1.Find(string str, int start, int end, RichTextBoxFinds option); C#程
47、序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件LoadFile()方法方法 该方法用于将指定的文件加载到该方法用于将指定的文件加载到RichTextBox控件中,它也有三种控件中,它也有三种重载版本,与上述重载版本,与上述SaveFile()方法分别对应的是:方法分别对应的是:void LoadFile(string path)void LoadFile(string path, RichTextBoxStreamType fileType)例如,下列语句将在控件例如,下列语句将在控件richTextBox2中打开中打开C:/text.rtf文件:文件:richText
48、Box2.LoadFile(C:/text.rtf);或者,或者,richTextBox2.LoadFile(C:/text.rtf, RichTextBoxStreamType.RichText);C#程序设计教程蒙祖强编著6.3.2 文本类控件文本类控件6.3 常用的控件(3)RichTextBox控件重要的事件控件重要的事件ModifiedChanged事件事件RichTextBox控件中的文本一旦受到更改,立即触发该事件。控件中的文本一旦受到更改,立即触发该事件。SelectionChanged事件事件触发条件是:光标移动,即一旦移动光标,该事件即可发生。因触发条件是:光标移动,即一旦
49、移动光标,该事件即可发生。因此可以利用该事件监控光标。此可以利用该事件监控光标。C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件1. ListBox控件(列表框)控件(列表框)(1)重要属性)重要属性SelectionMode属性属性当该属性取值为当该属性取值为SelectionMode.One时表示一次只能选中时表示一次只能选中ListBox控控件中的件中的1项(默认设置):项(默认设置):listBox1.SelectionMode = SelectionMode.One;当为当为SelectionMode.MultiSimple时表示可以选择多项,为时表示可以
50、选择多项,为None时时不能选择任何项。不能选择任何项。Items.Count属性属性该属性返回该属性返回ListBox控件中项的总数。控件中项的总数。C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件SelectedIndex属性属性该属性返回被选中的项的索引值;如果该属性返回被选中的项的索引值;如果ListBox控件允许选择多项控件允许选择多项(SelectionMode属性值取属性值取SelectionMode.MultiSimple),则该属),则该属性返回所有被选中的项中索引值最小的项的索引值。性返回所有被选中的项中索引值最小的项的索引值。SelectedI
51、tem属性属性 该属性返回被选中的项;如果该属性返回被选中的项;如果ListBox控件允许选择多项,则该属控件允许选择多项,则该属性返回所有被选中的项中索引值最小的项。性返回所有被选中的项中索引值最小的项。SelectedItemsi属性属性该属性返回所有被选中的项中索引值为该属性返回所有被选中的项中索引值为i的项。的项。Itemsi属性属性 该属性返回索引值为该属性返回索引值为i的项。的项。C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件SelectedIndices.Count属性属性 该属性返回所有被选中的项的总数。该属性返回所有被选中的项的总数。例如,利用下
52、列语句可以将例如,利用下列语句可以将listBox1控件中所有被选中的项复制到控件中所有被选中的项复制到listBox2控件中:控件中:for (int i = 0; i listBox1.SelectedIndices.Count; i+) listBox2.Items.Add(listBox1.SelectedItemsi.ToString();C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件(2)重要方法)重要方法Items.Add()方法方法该方法用于一个字符串添加到该方法用于一个字符串添加到ListBox控件中。例如:控件中。例如:listBox1.Ite
53、ms.Add(中国中国);SetSelected()方法方法该方法用于将指定的项设置为选中状态或为未被选中状态。例如:该方法用于将指定的项设置为选中状态或为未被选中状态。例如: listBox1.SetSelected(1, true); /将索引号为将索引号为1的项设置为选中状的项设置为选中状态态 listBox1.SetSelected(3, false); /将索引号为将索引号为3的项设置为未被选的项设置为未被选中状态中状态C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件IndexFromPoint()方法方法利用该方法可以获取利用该方法可以获取ListBox
54、控件中鼠标所指向的项的索引号,从控件中鼠标所指向的项的索引号,从而可以方便地读取而可以方便地读取ListBox控件中的任意一项。该方法通常是在有控件中的任意一项。该方法通常是在有关鼠标事件处理函数中调用,如:关鼠标事件处理函数中调用,如: private void listBox1_MouseDown(object sender, MouseEventArgs e) int index = listBox1.IndexFromPoint(e.X, e.Y); /获取索引获取索引 /其他处理代码其他处理代码C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件Items.R
55、emoveAt()方法方法该方法根据给定的索引号从该方法根据给定的索引号从ListBox控件中删除相应的项。例如,控件中删除相应的项。例如,下面语句是将索引为下面语句是将索引为2的项从的项从listBox1控件中删除:控件中删除:listBox1.Items.RemoveAt(2);Clear()方法方法该方法用于清空该方法用于清空ListBox控件中的内容。控件中的内容。ClearSelected()方法方法该方法用于清空被选择的项,使得所有项都变为未被选中的状态。该方法用于清空被选择的项,使得所有项都变为未被选中的状态。C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用
56、的控件(3)重要事件)重要事件SelectedIndexChanged事件事件当焦点在当焦点在ListBox控件中的项之间发生变动或点击控件中的项之间发生变动或点击ListBox控件时控件时都会触发该事件。相应的处理函数如下:都会触发该事件。相应的处理函数如下:private void listBox1_SelectedIndexChanged(object sender, EventArgs e) /事件处理代码事件处理代码C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件2 CheckedListBox控件控件 CheckedListBox控件和控件和ListBo
57、x控件的用法基本相同,不同的控件的用法基本相同,不同的是,前者的每项旁边增加了一个复选框,表示该项是否被选中。是,前者的每项旁边增加了一个复选框,表示该项是否被选中。因此,因此,CheckedListBox控件增加了一些支持访问这种复选框的属控件增加了一些支持访问这种复选框的属性等。例如,性等。例如,CheckedListBox控件的控件的CheckedItems.Count属性值属性值表示一共被选中的复选框的个数,表示一共被选中的复选框的个数,CheckedItemsi属性则返回索属性则返回索引为引为i的在复选框中被选中的项。的在复选框中被选中的项。C#程序设计教程蒙祖强编著6.3.3 列表
58、类控件列表类控件6.3 常用的控件3 ComboBox控件(组合框)控件(组合框) ComboBox控件和控件和ListBox控件也比较相似,不同的是,前者控件也比较相似,不同的是,前者是将其包含的项是将其包含的项“隐藏隐藏”起来(后者是全部显示),通过点击下起来(后者是全部显示),通过点击下拉按钮来选择所需的项(只能选一项),被选中的项将在文本框拉按钮来选择所需的项(只能选一项),被选中的项将在文本框中显示出来中显示出来 C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件4 ListView控件控件(1)重要属性)重要属性Items.Count属性和属性和Selec
59、tedItems.Count属性属性属性属性Items.Count返回返回ListView控件所包含的项的总数;属性控件所包含的项的总数;属性SelectedItems.Count则返回则返回ListView控件中已被选中的项的个数。控件中已被选中的项的个数。Itemsi属性属性该属性返回该属性返回ListView控件中索引为控件中索引为i的项,如果要返回项的标题,的项,如果要返回项的标题,则用则用Itemsi.Text属性。属性。例如,如果要访问例如,如果要访问ListView控件中所有的项,则可以用下列代码控件中所有的项,则可以用下列代码实现:实现:for (int i = 0; i li
60、stView1.Items.Count; i+) string s = listView1.Itemsi.Text;C#程序设计教程蒙祖强编著6.3.3 列表类控件列表类控件6.3 常用的控件SelectedItemsi属性属性该属性返回在被选中的项中索引为该属性返回在被选中的项中索引为i的项。它一般与的项。它一般与SelectedItems.Count属性搭配使用。属性搭配使用。例如,下列代码的作用是在例如,下列代码的作用是在ListBox1控件中列出控件中列出listView1控件中控件中所有已被选中的项(的所有已被选中的项(的Text值)值)for (int i = 0; i listV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年药理学考试的细节试题及答案
- 小学科学与语文交叉试题及答案
- 2024年汽车维修技术规范试题及答案
- 大咯血考试题目及答案
- 宠物营养教育的内容与策略试题及答案
- 智慧解决方案的可靠性评估
- 小学跆拳道课件
- 2024年汽车维修工考试的趋势分析试题及答案
- 2024年汽车美容师成就与挑战考量试题及答案
- 2024年美容师企业文化理解试题及答案
- 旅游概论(刘伟主编)(全国高职高专旅游类“十二五”示范教材) 全套课件(中)
- 2023年中国疾病预防控制中心招聘应届高校毕业生考试真题及答案
- 建设工程检测报告编制导则DB64-T1685-2020
- 项目干系人与干系人管理
- Java基础实践教程-Java编程基础
- 高等职业学校建设标准(2022年版)
- 无人机的生产流程
- 油漆修缮施工方案
- 山东省济南市2022-2023学年高一下学期期中考试语文试题(解析版)
- 奖学金评定模型
- 室外管网工程-工程施工进度计划表
评论
0/150
提交评论