本文介绍了RichTextBox.Find方法,以及C# RichTextBox控件的使用方法。
RichTextBox.Find办法
RichTextBox控件不只答应输入和修改文本,一起还供给了规范TextBox 控件未具有的、更高档的指定格局的许多功用。
语法:RichTextBox
阐明:
C# RichTextBox供给了一些特点,关于本控件文本的任何部分,用这些特点都能够指定格局。为了改动文本的格局,首先要选定它。只要选定的文本才干赋予字符和阶段格局。运用这些特点,可把文本改为粗体或斜体,或改动其色彩,以及创立上标和下标。经过设置左右缩进和悬挂式缩进,可调整阶段的格局。
C# RichTextBox控件能以 rtf 格局和一般 ASCII 文本格局这两种方式翻开和保存文件。能够运用控件的办法(LoadFile 和 SaveFile)直接读写文件,或运用与 Visual Basic 文件输入/输出句子联合的、比如 SelRTF 和 TextRTF 之类的控件特点翻开和保存文件。
经过运用OLEObjects 调集,RichTextBox 控件支撑目标的嵌入。刺进到控件中的每个目标,都代表 OLEObject 目标。用这样的控件,就能够创立包括其它文档或目标的文档。例如,可创立这样的文档,它有一个嵌入的 Microsoft Excel 电子数据表格、或 Microsoft Word 文档、或其它已在体系中注册的 OLE 目标。为了把一个目标刺进到 RichTextBox 控件中,只需简略地拖动一个文件(例如在Windows 95“资源管理器”中的拖动),或拖动的是另一使用程序(如 Microsoft Word)所用文件的一个杰出显现的区域,然后将所拖内容直接放入控件。
RichTextBox 控件支撑 OLE 目标的剪贴板和 OLE 拖/放操作。从剪贴板中犯上作乱进一个目标时,它被插在当时刺进点处。一个目标被拖放到控件时,刺进点将盯梢着鼠标光标的移动,直至鼠标按钮开释时该目标即被刺进。这种行为和 Microsoft Word 的相同。
运用 SelPrint 办法,能够打印 RichTextBox 控件的悉数或部分文本。
由于 RichTextBox 是一个数据绑定控件,经过 Data 控件能够把它绑定到 Microsoft Access 数据库的 Binary 或 Memo 字段上,也可把它绑定到具有相同容量的其它数据库字段上(例如 SQL 服务器中的 TEXT 数据类型的字段)。
规范 TextBox 控件用到的一切特点、事情和办法,RichTextBox 控件简直都能支撑,例如 MaxLength、 MultiLine、 ScrollBars、 SelLength、 SelStart 和 SelText。关于那些能够运用 TextBox 控件的使用程序,也能够很简单地运用 RichTextBox 控件。而且,RichTextBox 控件并没有和规范 TextBox 控件相同具有 64K 字符容量的约束。
发行留意 为了能在使用程序中运用 RichTextBox 控件,有必要把Richtx32.ocx 文件添加到工程中。因而,在使用程序发行时,Richtx32.ocx 文件就应安装在 Microsoft Windows 的 SYSTEM 目录内。
比如:
- privatevoid翻开图形文件ToolStripMenuItem_Click(objectsender,EventArgse)
- {
- stringNameFile;
- if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
- {
- NameFile=this.openFileDialog1.FileName;
- if(NameFile!="")
- {
- this.pictureBox1.Image=Image.FromFile(NameFile);
- }
- }
- }
- privatevoid翻开文本文件ToolStripMenuItem_Click(objectsender,EventArgse)
- {
- stringFilename;
- pictureBox1.Visible=false;
- if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
- {
- Filename=openFileDialog1.FileName;
- if(Filename!="")
- {
- this.textBox1.Text=Filename;
- this.richTextBox1.LoadFile(@Filename,RichTextBoxStreamType.PlainText);
- }
- }
- }
- //结构函数
- this.textBox1.KeyPress+=newKeyPressEventHandler(textBox1_KeyPress);
- this.textBox1.Validating+=newCancelEventHandler(textBox1_Validating);
- this.richTextBox1.LinkClicked+=newLinkClickedEventHandler(richTextBox1_LinkClicked);
- //撤销或置为粗体
- privatevoidbutton2_Click(objectsender,System.EventArgse)
- {
- FontoldFont=this.richTextBox1.SelectionFont;
- FontnewFont;
- if(oldFont.Bold)
- newFont=newFont(oldFont,oldFont.Style&~FontStyle.Bold);
- else
- newFont=newFont(oldFont,oldFont.Style|FontStyle.Bold);
- this.richTextBox1.SelectionFont=newFont;
- this.richTextBox1.Focus();
- }
- //撤销或置为斜体
- privatevoidbutton7_Click(objectsender,System.EventArgse)
- {
- FontoldFont=this.richTextBox1.SelectionFont;
- FontnewFont;
- if(oldFont.Italic)
- newFont=newFont(oldFont,oldFont.Style&~FontStyle.Italic);
- else
- newFont=newFont(oldFont,oldFont.Style|FontStyle.Italic);
- this.richTextBox1.SelectionFont=newFont;
- this.richTextBox1.Focus();
- }
- //撤销或加上下划线
- privatevoidbutton8_Click(objectsender,System.EventArgse)
- {
- FontoldFont=this.richTextBox1.SelectionFont;
- FontnewFont;
- if(oldFont.Underline)
- newFont=newFont(oldFont,oldFont.Style&~FontStyle.Underline);
- else
- newFont=newFont(oldFont,oldFont.Style|FontStyle.Underline);
- this.richTextBox1.SelectionFont=newFont;
- this.richTextBox1
- .Focus();
- }
- //撤销或置为居中
- privatevoidbutton5_Click(objectsender,System.EventArgse)
- {
- if(this.richTextBox1.SelectionAlignment==HorizontalAlignment.Center)
- this.richTextBox1.SelectionAlignment=HorizontalAlignment.Left;
- else
- this.richTextBox1.SelectionAlignment=HorizontalAlignment.Center;
- this.richTextBox1.Focus();
- }
- privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse)
- {
- if((e.KeyChar<48||e.KeyChar>57)&&e.KeyChar!=8&&e.KeyChar!=13)
- {
- e.Handled=true;
- }
- elseif(e.KeyChar==13)
- {
- TextBoxtxt=(TextBox)sender;
- if(txt.Text.Length>0)
- ApplyTextSize(txt.Text);
- e.Handled=true;
- this.richTextBox1.Focus();
- }
- }
- privatevoidtextBox1_Validating(objectsender,CancelEventArgse)
- {
- TextBoxtxt=(TextBox)sender;
- ApplyTextSize(txt.Text);
- this.richTextBox1.Focus();
- }
- //改动字体大小
- privatevoidApplyTextSize(stringtextSize)
- {
- floatnewSize=Convert.ToSingle(textSize);
- FontFamilycurrentFontFamily;
- FontnewFont;
- currentFontFamily=this.richTextBox1.SelectionFont.FontFamily;
- newFont=newFont(currentFontFamily,newSize);
- this.richTextBox1.SelectionFont=newFont;
- }
- //翻开网页
- privatevoidrichTextBox1_LinkClicked(objectsender,LinkClickedEventArgse)
- {
- System.Diagnostics.Process.Start(e.LinkText);
- }
- //翻开文件
- privatevoidbutton1_Click(objectsender,System.EventArgse)
- {
- try
- {
- this.richTextBox1.LoadFile(@"..\..\test.txt");
- }
- catch(System.IO.FileNotFoundException)
- {
- MessageBox.Show("Filenotfound!");
- }
- }
- //保存文件
- privatevoidbutton6_Click(objectsender,System.EventArgse)
- {
- try
- {
- this.richTextBox1.SaveFile(@"..\..\test.txt");
- }
- catch(System.Exceptionerr)
- {
- MessageBox.Show(err.Message);
- }
- }
在C# RichTextBox的内容内查找文本:
重载列表
在 RichTextBox 控件的文本中查找字符列表中某个字符的***个实例
[C#] public int Find(char[]);
示例
[Visual Basic, C#, C++] 下面的示例在 RichTextBox 的内容中查找在 text 参数中传递到办法的字符。如果在 RichTextBox 中找到了 text 数组的内容,则该办法回来所找到值的索引;不然,它将回来 -1。该示例假定此办法坐落 Form 的类中,该窗体包括一个名为 richTextBox1 的 RichTextBox 控件和一个连接到该示例中界说的单击事情处理办法的 Button 控件(名为 button1)。
[C#]
- privatevoidbutton1_Click(objectsender,System.EventArgse)
- {
- MessageBox.Show(FindMyText(newchar[]{'D','e','l','t','a'}).ToString());
- }
- publicintFindMyText(char[]text)
- {
- //Initializethereturnvaluetofalsebydefault.
- intreturnValue=-1;
- //Ensurethatasearchstringhasbeenspecifiedandavalidstartpoint.
- if(text.Length>0)
- {
- //Obtainthelocationofthefirstcharacterfoundinthecontrol
- //thatmatchesanyofthecharactersinthechararray.
- intindexToText=richTextBox1.Find(text);
- //DeterminewhetherthetextwasfoundinrichTextBox1.
- if(indexToText>=0)
- {
- //Returnthelocationofthecharacter.
- returnValue=indexToText;
- }
- }
- returnreturnValue;
- }
在C# RichTextBox控件的文本中查找字符串。
[C#] public int Find(string);
从特定的开端点开端,在 RichTextBox 控件的文本中查找字符列表中某个字符的***个实例。
[C#] public int Find(char[], int);
在对查找使用特定选项的情况下,在 RichTextBox 控件的文本中查找字符串。
[C#] public int Find(string, RichTextBoxFinds);
示例
[Visual Basic, C#] 下面的示例在 RichTextBox 的整个内容中查找传递到此办法文本参数中的查找字符串的***个实例。如果在 RichTextBox 中找到查找字符串,此办法将回来 true 值并杰出显现文本;不然回来 false。本示例还在查找中指定匹配指定查找字符串的大小写的选项。此示例假定此办法放置在 Form 的类中,而且该类包括一个名为 richTextBox1 的 RichTextBox。
[C#]
- publicboolFindMyText(stringtext)
- {
- //Initializethereturnvaluetofalsebydefault.
- boolreturnValue=false;
- //Ensureasearchstringhasbeenspecified.
- if(text.Length>0)
- {
- //ObtainthelocationofthesearchstringinrichTextBox1.
- intindexToText=richTextBox1.Find(text,RichTextBoxFinds.MatchCase);
- //DetermineifthetextwasfoundinrichTextBox1.
- if(indexToText>=0)
- {
- returnValue=true;
- }
- }
- returnreturnValue;
- }
在C# RichTextBox控件的某个文本规模中查找字符列表的某个字符的***个实例。
[C#] public int Find(char[], int, int);
在对查找使用特定选项的情况下,在 RichTextBox 控件的文本中查找坐落控件内特定方位的字符串。
[C#] public int Find(string, int, RichTextBoxFinds);
在对查找使用特定选项的情况下,在 RichTextBox 控件文本中查找控件内某个文本规模内的字符串。
【修改引荐】
- 总结C#哈希表的用法
- 不相同的入门:看C# Hello World的17种写法
- 什么是WMI?及其示例
- 从C#到C++简单呈现的问题解答
- 浅议.NET、ASP.NET和C#的联系
知优网 » 详解C# RichTextBox的使用方法(C#richtextbox)