《(精品)c#第05章 Windows窗体界面设计2.ppt》由会员分享,可在线阅读,更多相关《(精品)c#第05章 Windows窗体界面设计2.ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第第1部分部分第第5章章Windows窗体界面设计窗体界面设计5.1 5.1 窗体、属性与事件窗体、属性与事件5.25.2 Windows Windows窗体基本控件窗体基本控件5.3 5.3 菜菜单单与工具与工具栏栏 5.4 5.4 其他其他WindowsWindows窗体控件窗体控件2操作技巧操作技巧1、凡是通过设计界面添加的事件,要想使代码不再与某个、凡是通过设计界面添加的事件,要想使代码不再与某个事件关联,应该在设计界面下通过属性窗口下的雷电符号完事件关联,应该在设计界面下通过属性窗口下的雷电符号完成。这是因为自动生成的代码是单独保存在一个文件中的,成。这是因为自动生成的代码是单独保
2、存在一个文件中的,这样做的目的是为了让其自动修改生成的代码。这样做的目的是为了让其自动修改生成的代码。如果忘记了在设计模式下操作,而是直接在代码编辑模式下如果忘记了在设计模式下操作,而是直接在代码编辑模式下删除了关联的事件及其代码,或者修改了事件名称,由于系删除了关联的事件及其代码,或者修改了事件名称,由于系统不会自动删除或修改生成的代码中对应事件的事件句柄,统不会自动删除或修改生成的代码中对应事件的事件句柄,因此仍然需要切换到设计模式,并选中要处理的控件,然后因此仍然需要切换到设计模式,并选中要处理的控件,然后单击属性窗口中的雷电符号,在对应的事件中重新处理一遍,单击属性窗口中的雷电符号,在
3、对应的事件中重新处理一遍,否则会引起编译错误。否则会引起编译错误。2、如果希望控制设计窗体中各控件响应、如果希望控制设计窗体中各控件响应tab键的顺序,应该键的顺序,应该通过主菜单视图下的通过主菜单视图下的tab键顺序操作,操作完成后,再选择键顺序操作,操作完成后,再选择视图视图tab键顺序命令返回到正常设计界面模式。键顺序命令返回到正常设计界面模式。35.1窗体、属性与事件窗体、属性与事件窗体:向用户显示信息的可视界面。窗体:向用户显示信息的可视界面。控件:显示数据或接受数据输入的相对独立的用户界面控件:显示数据或接受数据输入的相对独立的用户界面(UI)元素。元素。事件:当用户对窗体或其中的
4、某个控件进行操作时,将触发事件:当用户对窗体或其中的某个控件进行操作时,将触发相应的事件,在代码中即可对这些事件进行处理。相应的事件,在代码中即可对这些事件进行处理。45.1.1窗体的显示与隐藏窗体的显示与隐藏1、如何在代码中打开一个新窗体、如何在代码中打开一个新窗体Form2fm=newForm2();fm.Show();/或者或者fm.ShowDialog();2、如何在代码中关闭一个窗体、如何在代码中关闭一个窗体用法用法1:fm.Close();用法用法2:this.Close();用法用法3:Application.OpenFormsForm1.Close();3、如何隐藏一个打开的窗
5、体、如何隐藏一个打开的窗体(1)隐藏当前窗体:)隐藏当前窗体:this.Hide();(2)隐藏其它窗体:)隐藏其它窗体:Application.OpenFormsForm1.Hide();4、如何重新显示隐藏的窗体、如何重新显示隐藏的窗体(1)显示当前窗体:)显示当前窗体:this.Show();(2)显示其它窗体:)显示其它窗体:Application.OpenFormsForm1.Show();55.1.2窗体的属性窗体的属性设置窗体属性的方法:设置窗体属性的方法:(1)在设计模式下设置窗体属性)在设计模式下设置窗体属性(2)在代码编辑模式下设置窗体属性)在代码编辑模式下设置窗体属性窗体
6、常用属性:窗体常用属性:1Text窗体标题窗体标题2StartPosition窗体首次出现的位置窗体首次出现的位置6Validating事件和事件和Validated事件事件Validating事件:当控件的事件:当控件的CausesValidation属性为属性为true,且该控件失去焦,且该控件失去焦点时,触发该事件。注意被验证有效性的控件是失去焦点的控件,而不是点时,触发该事件。注意被验证有效性的控件是失去焦点的控件,而不是获得焦点的控件。获得焦点的控件。Validated事件:当控件的事件:当控件的CausesValidation属性为属性为True,且该控件失去焦,且该控件失去焦点时
7、,触发该事件。该事件在点时,触发该事件。该事件在Validating事件之后发生,表示有效性验证事件之后发生,表示有效性验证已经完成。已经完成。例如,假如例如,假如textBox1的的CausesValidation属性均为属性均为TrueprivatevoidtextBox1_Validating(objectsender,CancelEventArgse)if(textBox1.Text.Length=0)MessageBox.Show(必须在必须在textBox1中输入内容中输入内容);textBox1.Focus();再将再将textBox1的的CausesValidation属性改为
8、属性改为False,运行观察结果。,运行观察结果。75.1.3 5.1.3 鼠标事件与键盘事件鼠标事件与键盘事件常用鼠标事件常用鼠标事件1.Click:单击鼠标左键时触发:单击鼠标左键时触发2.MouseDoubleClick:双击鼠标左键时触发:双击鼠标左键时触发3.MouseEnter:鼠标进入控件可见区域时触发:鼠标进入控件可见区域时触发4.MouseMove:鼠标在控件区域内移动时触发:鼠标在控件区域内移动时触发5.MouseLeave:鼠标离开控件可见区域时触发:鼠标离开控件可见区域时触发常用键盘事件常用键盘事件1.KeyDown:按下某个键时触发:按下某个键时触发2.KeyUp:释
9、放按键时触发:释放按键时触发3.KeyPress:KeyDown后后KeyUp前触发前触发8KeyDown和和KeyPress的区别的区别KeyDown和和KeyPress的区别是的区别是KeyDown传送的是被按下键传送的是被按下键的键盘码,而的键盘码,而KeyPress传送被按下键的传送被按下键的char值。值。一般用一般用KeyDown、KeyUp判断是否按下了判断是否按下了Shift、Alt、Ctrl、F1、箭头键等特殊键或者组合键,也可以判断是否按下某个、箭头键等特殊键或者组合键,也可以判断是否按下某个字符;而字符;而KeyPress仅用于判断是否按下了某个字符。仅用于判断是否按下了
10、某个字符。9例如用户在例如用户在textBox1中按回车键时,可以利用中按回车键时,可以利用KeyPress事件作相应处理:事件作相应处理:privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse)if(e.KeyChar=(char)Keys.Enter)/。【例例5-1】1011private void textBox1_KeyDown(object sender,private void textBox1_KeyDown(object sender,KeyEventArgsKeyEventArgs e)e)if(if(e.K
11、eyCodee.KeyCode=Keys.UpKeys.Up)MessageBox.ShowMessageBox.Show(您现在按下的是向上箭头!您现在按下的是向上箭头!););if(if(e.KeyCodee.KeyCode=Keys.F1)=Keys.F1)MessageBox.ShowMessageBox.Show(您现在按下的是功能键您现在按下的是功能键F1F1!是否需要帮助?!是否需要帮助?););if(if(e.Alte.Alt=true&=true&e.Shifte.Shift=true&=true&e.Controle.Control=true)=true)MessageBo
12、x.ShowMessageBox.Show(您现在按下的是组合键您现在按下的是组合键Ctrl+Alt+ShiftCtrl+Alt+Shift!););if(if(e.Controle.Control=true)=true)switch(switch(e.KeyCodee.KeyCode)case case Keys.AKeys.A:MessageBox.ShowMessageBox.Show(您现在按下的是组合键您现在按下的是组合键Ctrl+ACtrl+A!););break;break;case case Keys.BKeys.B:MessageBox.ShowMessageBox.Show
13、(您现在按下的是组合键您现在按下的是组合键Ctrl+BCtrl+B!););break;break;12 private void private void buttonOK_Click(objectbuttonOK_Click(object sender,sender,EventArgsEventArgs e)e)label1.Text=textBox1.Text;label1.Text=textBox1.Text;private void private void buttonOK_MouseEnter(objectbuttonOK_MouseEnter(object sender,sen
14、der,EventArgsEventArgs e)e)labelDisplay.VisiblelabelDisplay.Visible=true;=true;labelDisplay.TextlabelDisplay.Text=按下按钮将文本框中的内容显示于下面!按下按钮将文本框中的内容显示于下面!;private void private void buttonOK_MouseLeave(objectbuttonOK_MouseLeave(object sender,sender,EventArgsEventArgs e)e)labelDisplay.TextlabelDisplay.Tex
15、t=;=;13145.2Windows窗体基本控件窗体基本控件5.2.1控件中常用的属性和方法控件中常用的属性和方法1.常用基本属性常用基本属性除了书上讲的属性外,注意以下属性的用法:除了书上讲的属性外,注意以下属性的用法:1)(1)(Name):指定控件的名称,它是控件在当前应用程序中的:指定控件的名称,它是控件在当前应用程序中的唯一标识,代码通过该属性来访问控件唯一标识,代码通过该属性来访问控件2)2)Enabled:决定控件是否可用,取值为:决定控件是否可用,取值为true时可用,取值为时可用,取值为false时不可用时不可用3 3)AnchorAnchor属性属性:保持控件与边框的距离
16、不变:保持控件与边框的距离不变4 4)DockDock属性属性:让控件始终紧靠边框:让控件始终紧靠边框155)5)Font:决定控件上文本的显示形式:决定控件上文本的显示形式,包括字体名称、字号以包括字体名称、字号以及是否斜体、加粗和下划线等及是否斜体、加粗和下划线等6)6)BackColor:设置控件的背景色:设置控件的背景色7)7)ForeColor:设置空间的前景色,即控件上文本的颜色:设置空间的前景色,即控件上文本的颜色8)8)Location:定位控件:定位控件9)9)size:指定控件的高度和宽度:指定控件的高度和宽度10)10)Text:11)11)Visible:165.2.1
17、控件中常用的属性和方法(续)控件中常用的属性和方法(续)2.常用方法常用方法Focus方法:让控件获得焦点方法:让控件获得焦点ToString方法:转换为字符串方法:转换为字符串17Button(按钮)控件(按钮)控件按钮是界面中经常使用的控件。程序员使用这个控件的时候通按钮是界面中经常使用的控件。程序员使用这个控件的时候通常需要做两个工作:常需要做两个工作:设置按钮属性。设置按钮属性。编写编写Click事件方法。事件方法。常用:常用:1Text属性:显示控件文本信息属性:显示控件文本信息例如:例如:this.button1.Text=确定确定;2Click事件:单击鼠标左键时触发。事件:单击
18、鼠标左键时触发。例如:例如:privatevoidbutton1_Click(objectsender,System.EventArgse)MessageBox.Show(this,你点击了你点击了确定确定按钮。按钮。,提示提示信息信息,MessageBoxButtons.OK,MessageBoxIcon.Information);18参数的含义:参数的含义:(1)objectsender:代表发出事件的对象,此处指:代表发出事件的对象,此处指button1。使用时可以直接用使用时可以直接用button1,也可以像下面形式:,也可以像下面形式:Buttonbutton=(Button)sen
19、der;(2)System.EventArgse:封装了事件的信息。:封装了事件的信息。3MouseEnter事件:鼠标进入按钮区域时触发。事件:鼠标进入按钮区域时触发。例如:例如:privatevoidbutton1_MouseEnter(objectsender,System.EventArgse)this.button1.BackColor=Color.Red;4MouseLeave事件:鼠标离开按钮区域时触发。事件:鼠标离开按钮区域时触发。例如:例如:privatevoidbutton1_MouseLeave(objectsender,System.EventArgse)this.bu
20、tton1.BackColor=SystemColors.Control;195.2.2TextBox控件控件1.文本框控件常用的基本属性文本框控件常用的基本属性1)1)Text:表示文本框中显示的内容。:表示文本框中显示的内容。2)2)MaxLength:表示用户可以在文本框控件中最多键入的字:表示用户可以在文本框控件中最多键入的字符数,默认值为符数,默认值为32767个字符。注意,由于使用的是个字符。注意,由于使用的是Unicode字符,所以对中文和英文的字符计数方法是相同的,即一个字符,所以对中文和英文的字符计数方法是相同的,即一个英文字符的长度为英文字符的长度为1,一个汉字字符的长度也
21、是,一个汉字字符的长度也是1。3)3)Multiline:表示是否可以包含多行内容。:表示是否可以包含多行内容。4)4)PasswordChar:用于指定在屏蔽:用于指定在屏蔽TextBox控件中输入的密控件中输入的密码字符时所要使用的符号。码字符时所要使用的符号。UseSystemPasswordChar属性属性205.2.2TextBox控件(续)控件(续)2.TextBox控件常用的基本事件控件常用的基本事件TextChanged:表示文本框中的当前内容(:表示文本框中的当前内容(Text属性值)更改属性值)更改时触发的操作。时触发的操作。Enter:当前文本框为活动状态时触发的操作当前
22、文本框为活动状态时触发的操作.注意注意:Enter和和MouseEnter事件不同事件不同,MouseEnter事件表示当鼠标进入当前文事件表示当鼠标进入当前文本框区域内时触发操作本框区域内时触发操作.例例:5.22122private void private void textBoxUser_MouseEnter(objecttextBoxUser_MouseEnter(object sender,sender,EventArgsEventArgs e)e)textBoxUser.TexttextBoxUser.Text=;=;private void private void textB
23、oxPassword_TextChanged(objecttextBoxPassword_TextChanged(object sender,sender,EventArgsEventArgs e)e)textBoxUser.ReadOnlytextBoxUser.ReadOnly=true;=true;private void private void textBoxInformation_TextChanged(objecttextBoxInformation_TextChanged(object sender,sender,EventArgsEventArgs e)e)buttonOK.
24、ForeColorbuttonOK.ForeColor=System.Drawing.Color.RedSystem.Drawing.Color.Red;buttonOK.SizebuttonOK.Size=new System.Drawing.Size(100,50);=new System.Drawing.Size(100,50);private void private void buttonOK_Click(objectbuttonOK_Click(object sender,sender,EventArgsEventArgs e)e)labelResult.VisiblelabelR
25、esult.Visible=true;=true;labelResult.TextlabelResult.Text=string.Formatstring.Format(用户名是:用户名是:0;0;密码是:密码是:1n1n输入的资料是:输入的资料是:n2,n2,textBoxUser.TexttextBoxUser.Text,textBoxPassword.TexttextBoxPassword.Text,textBoxInformation.TexttextBoxInformation.Text););23245.2.3MaskedTextBox控件控件MaskedTextBox控件也叫掩码
26、文本框控件也叫掩码文本框,主要作用是控制输入文主要作用是控制输入文本的格式本的格式,如果输入的内容不满足规定的格式如果输入的内容不满足规定的格式,则控件不会接则控件不会接收该输入收该输入.1.掩码文本框控件常用的属性掩码文本框控件常用的属性1)PromptChar属性:指定作为占位符的字符,默认为下划线属性:指定作为占位符的字符,默认为下划线“_”。2)Mask属性:设置当前掩码文本框输入字符的格式。属性:设置当前掩码文本框输入字符的格式。掩码符号见掩码符号见P113表表5-33)BeepOnError属性:键入无效字符时是否发出警告声。属性:键入无效字符时是否发出警告声。4)Validing
27、Type属性(在代码方式下用):获取或设置验证类属性(在代码方式下用):获取或设置验证类型。型。255)InsertKeyMode属性属性:指示向掩码文本框输入字符时的输入模指示向掩码文本框输入字符时的输入模式式,其属性值有其属性值有:DefaultInsertOverWrite.当属性值为当属性值为default时时,表示输入模式由当时键盘的插入表示输入模式由当时键盘的插入/改写状态决定。改写状态决定。属性值为属性值为Insert时时,即使键盘的即使键盘的Ins键被按下,也不会以改写键被按下,也不会以改写方式输入字符。当为方式输入字符。当为OverWrite时,则任何时候都是以改写时,则任何
28、时候都是以改写方式输入字符。方式输入字符。6)AllowPromptAsInput属性:指定是否允许将占位符看做是属性:指定是否允许将占位符看做是有效的输入字符,有效的输入字符,true为允许,为允许,false为不允许。为不允许。7)ResetOnPrompt属性:决定当输入字符与占位符相同时,属性:决定当输入字符与占位符相同时,是否跳过当前输入字符的位置。是否跳过当前输入字符的位置。265.2.3MaskedTextBox控件(续)控件(续)2.掩码文本框控件常用的事件掩码文本框控件常用的事件MaskInputRejected事件:当输入字符不符合掩码要求时触发的操事件:当输入字符不符合掩
29、码要求时触发的操作。作。TypeValidationCompleted事件:事件:当当ValidingType属性完成对输入文本的分析时触发。属性完成对输入文本的分析时触发。例例5.327private void private void MyMaskInputRejected(objectMyMaskInputRejected(object sender,sender,MaskInputRejectedEventArgsMaskInputRejectedEventArgs e)e)(MaskedTextBox)sender).ForeColorMaskedTextBox)sender).Fo
30、reColor=Color.RedColor.Red;/若输入不符合要求若输入不符合要求,则以红色字体显示则以红色字体显示 private void private void MyMaskInputReset(objectMyMaskInputReset(object sender,sender,KeyEventArgsKeyEventArgs e)e)/重新输入时重新输入时,以改写方式输入以改写方式输入,并恢复正常的字体颜色并恢复正常的字体颜色 (MaskedTextBox)sender).InsertKeyModeMaskedTextBox)sender).InsertKeyMode=In
31、sertKeyMode.OverwriteInsertKeyMode.Overwrite;(MaskedTextBox)sender).ForeColorMaskedTextBox)sender).ForeColor=Color.FromKnownColor(KnownColor.WindowTextColor.FromKnownColor(KnownColor.WindowText););public public FormMaskedTextBoxFormMaskedTextBox()()InitializeComponentInitializeComponent();();maskedT
32、extBoxmaskedTextBoxBirthdayBirthday.ValidatingType.ValidatingType=typeof(System.DateTimetypeof(System.DateTime););maskedTextBoxmaskedTextBoxPhonePhone.MaskInputRejected.MaskInputRejected+=+=new new MaskInputRejectedEventHandler(MyMaskInputRejectedMaskInputRejectedEventHandler(MyMaskInputRejected););
33、maskedTextBoxmaskedTextBoxPhonePhone.KeyDown.KeyDown+=new +=new KeyEventHandler(MyMaskInputResetKeyEventHandler(MyMaskInputReset););maskedTextBoxmaskedTextBoxSalarySalary.MaskInputRejected.MaskInputRejected+=+=new new MaskInputRejectedEventHandler(MyMaskInputRejectedMaskInputRejectedEventHandler(MyM
34、askInputRejected););maskedTextBoxmaskedTextBoxSalarySalary.KeyDown.KeyDown+=new +=new KeyEventHandler(MyMaskInputResetKeyEventHandler(MyMaskInputReset););28 private void private void buttonOK_Click(objectbuttonOK_Click(object sender,sender,EventArgsEventArgs e)e)if(if(maskedTextBoxUserCode.Textmaske
35、dTextBoxUserCode.Text=-|=-|maskedTextBoxUserName.TextmaskedTextBoxUserName.Text=)=)MessageBox.ShowMessageBox.Show(您还没有填写用户名或真实姓名!您还没有填写用户名或真实姓名!););maskedTextBoxUserCode.FocusmaskedTextBoxUserCode.Focus();();return;return;labelResult.VisiblelabelResult.Visible=true;=true;labelResult.TextlabelResult.
36、Text=string.Formatstring.Format(新添加雇员信息如下:新添加雇员信息如下:n n+员工号:员工号:0n0n姓名:姓名:1n1n出生日期:出生日期:2n2n电话号码:电话号码:3n3n月薪:月薪:4,4,maskedTextBoxUserCode.TextmaskedTextBoxUserCode.Text,maskedTextBoxUserName.TextmaskedTextBoxUserName.Text,maskedTextBoxBirthday.TextmaskedTextBoxBirthday.Text,maskedTextBoxPhone.Textma
37、skedTextBoxPhone.Text,maskedTextBoxSalary.TextmaskedTextBoxSalary.Text););29private void private void maskedTextBoxBirthday_TypeValidationCompleted(objectmaskedTextBoxBirthday_TypeValidationCompleted(object sender,sender,TypeValidationEventArgsTypeValidationEventArgs e)e)if(!if(!e.IsValidInpute.IsVa
38、lidInput)MessageBox.ShowMessageBox.Show(您输入的日期不正确!您输入的日期不正确!););(MaskedTextBox)sender).FocusMaskedTextBox)sender).Focus();();(MaskedTextBox)sender).InsertKeyModeMaskedTextBox)sender).InsertKeyMode=InsertKeyMode.OverwriteInsertKeyMode.Overwrite;30补充例子补充例子注意:此例子同时演示了如何使用注意:此例子同时演示了如何使用TagTag属性。属性。(参加工
39、作时间掩码:参加工作时间掩码:00000000年年0000月月)31325.2.4RichTextBox控件控件RichTextBox控件的主要功能是进行高级文本输入和控件的主要功能是进行高级文本输入和编辑编辑,作为一般的文本输入作为一般的文本输入,其属性、事件与其属性、事件与TextBox控件的大致相同。它的特殊属性和方法可以完成与控件的大致相同。它的特殊属性和方法可以完成与word相似的文字处理功能,如改变文本、段落的显示相似的文字处理功能,如改变文本、段落的显示格式,在文本中查找特定字符和字符串等。如表格式,在文本中查找特定字符和字符串等。如表5-4所示所示P117。例例5-4:创建一个
40、可以对:创建一个可以对RTF文件进行编辑操作的文件进行编辑操作的windows应用程序。应用程序。3334private void buttonprivate void buttonDisplayDisplay_Click(object sender,EventArgs e)_Click(object sender,EventArgs e)richTextBox1.Clear();richTextBox1.Clear();richTextBox1.SelectedText=richTextBox1.SelectedText=窗体使用介绍:窗体使用介绍:+n;+n;richTextBox1.Se
41、lectionBullet=true;richTextBox1.SelectionBullet=true;/项目符号与编号项目符号与编号 richTextBox1.SelectionFont=new Font(richTextBox1.SelectionFont=new Font(隶书隶书,14,14,System.Drawing.FontStyle.Bold);System.Drawing.FontStyle.Bold);richTextBox1.SelectionColor=Color.OrangeRed;richTextBox1.SelectionColor=Color.OrangeRe
42、d;richTextBox1.SelectedText=richTextBox1.SelectedText=读入的读入的RTFRTF文件为:文件为:source.rtfn;source.rtfn;richTextBox1.SelectionFont=new Font(richTextBox1.SelectionFont=new Font(宋体宋体,14,14,System.Drawing.FontStyle.Bold);System.Drawing.FontStyle.Bold);richTextBox1.SelectionColor=Color.LightSalmon;richTextBox
43、1.SelectionColor=Color.LightSalmon;richTextBox1.SelectedText=richTextBox1.SelectedText=保存保存RTFRTF文件为:文件为:result.rtfn;result.rtfn;richTextBox1.SelectionFont=new Font(richTextBox1.SelectionFont=new Font(隶书隶书,14,14,System.Drawing.FontStyle.Bold);System.Drawing.FontStyle.Bold);richTextBox1.SelectionColo
44、r=Color.BlueViolet;richTextBox1.SelectionColor=Color.BlueViolet;richTextBox1.SelectedText=richTextBox1.SelectedText=可以使用锁定功能保护文本中的关键字符,可以使用锁定功能保护文本中的关键字符,以免被错误地修改以免被错误地修改n;n;richTextBox1.SelectionFont=new Font(richTextBox1.SelectionFont=new Font(隶书隶书,14,14,System.Drawing.FontStyle.Bold);System.Drawi
45、ng.FontStyle.Bold);richTextBox1.SelectionColor=Color.Purple;richTextBox1.SelectionColor=Color.Purple;richTextBox1.SelectedText=richTextBox1.SelectedText=可以使用替换功能修改文本中的某些内容,可以使用替换功能修改文本中的某些内容,或直接修改。或直接修改。n;n;richTextBox1.SelectionBullet=false;richTextBox1.SelectionBullet=false;35private void buttonpr
46、ivate void buttonOpenFileOpenFile_Click(object sender,EventArgs e)_Click(object sender,EventArgs e)richTextBox1.richTextBox1.LoadFileLoadFile(D:source.rtf,(D:source.rtf,RichTextBoxStreamType.RichText);RichTextBoxStreamType.RichText);private void buttonSaveFile_Click(object sender,EventArgs e)private
47、 void buttonSaveFile_Click(object sender,EventArgs e)richTextBox1.richTextBox1.SaveFileSaveFile(D:result.rtf,(D:result.rtf,RichTextBoxStreamType.RichText);RichTextBoxStreamType.RichText);MessageBox.Show(MessageBox.Show(当前文本已保存于当前文本已保存于“result.rtf”result.rtf”文件中!文件中!););private void buttonprivate voi
48、d buttonProtectedProtected_Click(object sender,EventArgs e)_Click(object sender,EventArgs e)int myText2=richTextBox1.Find(textBoxProtected.Text);int myText2=richTextBox1.Find(textBoxProtected.Text);if(textBoxProtected.Text=)if(textBoxProtected.Text=)MessageBox.Show(MessageBox.Show(没有指定要保护的信息!没有指定要保护
49、的信息!););return;return;if(myText2=-1)if(myText2=-1)MessageBox.Show(MessageBox.Show(文本中不存在指定的字符串文本中不存在指定的字符串+textBoxProtected.Text+!););return;return;richTextBox1.richTextBox1.SelectionProtected SelectionProtected=true;=true;36private void buttonprivate void buttonFindFind_Click(object sender,EventArg
50、s e)_Click(object sender,EventArgs e)/若没有指定替换或被替换字符串,则不应执行该事件若没有指定替换或被替换字符串,则不应执行该事件 if(textBoxFind1.Text=|textBoxFind2.Text=)if(textBoxFind1.Text=|textBoxFind2.Text=)MessageBox.Show(MessageBox.Show(没有完整指定替换或被替换字符串!没有完整指定替换或被替换字符串!););return;return;/若没有找到所要替换的指定字符串,则提示并退出若没有找到所要替换的指定字符串,则提示并退出 int m