本文介绍了RichTextBox.Find方法,以及C# RichTextBox控件的使用方法。

RichTextBox.Find办法

详解C# RichTextBox的使用方法(C#richtextbox)  C# RichTextBox控件 第1张

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 目录内。

比如:

  1. privatevoid翻开图形文件ToolStripMenuItem_Click(objectsender,EventArgse)
  2. {
  3. stringNameFile;
  4. if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
  5. {
  6. NameFile=this.openFileDialog1.FileName;
  7. if(NameFile!="")
  8. {
  9. this.pictureBox1.Image=Image.FromFile(NameFile);
  10. }
  11. }
  12. }
  13. privatevoid翻开文本文件ToolStripMenuItem_Click(objectsender,EventArgse)
  14. {
  15. stringFilename;
  16. pictureBox1.Visible=false;
  17. if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
  18. {
  19. Filename=openFileDialog1.FileName;
  20. if(Filename!="")
  21. {
  22. this.textBox1.Text=Filename;
  23. this.richTextBox1.LoadFile(@Filename,RichTextBoxStreamType.PlainText);
  24. }
  25. }
  26. }
  27. //结构函数
  28. this.textBox1.KeyPress+=newKeyPressEventHandler(textBox1_KeyPress);
  29. this.textBox1.Validating+=newCancelEventHandler(textBox1_Validating);
  30. this.richTextBox1.LinkClicked+=newLinkClickedEventHandler(richTextBox1_LinkClicked);
  31. //撤销或置为粗体
  32. privatevoidbutton2_Click(objectsender,System.EventArgse)
  33. {
  34. FontoldFont=this.richTextBox1.SelectionFont;
  35. FontnewFont;
  36. if(oldFont.Bold)
  37. newFont=newFont(oldFont,oldFont.Style&~FontStyle.Bold);
  38. else
  39. newFont=newFont(oldFont,oldFont.Style|FontStyle.Bold);
  40. this.richTextBox1.SelectionFont=newFont;
  41. this.richTextBox1.Focus();
  42. }
  43. //撤销或置为斜体
  44. privatevoidbutton7_Click(objectsender,System.EventArgse)
  45. {
  46. FontoldFont=this.richTextBox1.SelectionFont;
  47. FontnewFont;
  48. if(oldFont.Italic)
  49. newFont=newFont(oldFont,oldFont.Style&~FontStyle.Italic);
  50. else
  51. newFont=newFont(oldFont,oldFont.Style|FontStyle.Italic);
  52. this.richTextBox1.SelectionFont=newFont;
  53. this.richTextBox1.Focus();
  54. }
  55. //撤销或加上下划线
  56. privatevoidbutton8_Click(objectsender,System.EventArgse)
  57. {
  58. FontoldFont=this.richTextBox1.SelectionFont;
  59. FontnewFont;
  60. if(oldFont.Underline)
  61. newFont=newFont(oldFont,oldFont.Style&~FontStyle.Underline);
  62. else
  63. newFont=newFont(oldFont,oldFont.Style|FontStyle.Underline);
  64. this.richTextBox1.SelectionFont=newFont;
  65. this.richTextBox1
  66. .Focus();
  67. }
  68. //撤销或置为居中
  69. privatevoidbutton5_Click(objectsender,System.EventArgse)
  70. {
  71. if(this.richTextBox1.SelectionAlignment==HorizontalAlignment.Center)
  72. this.richTextBox1.SelectionAlignment=HorizontalAlignment.Left;
  73. else
  74. this.richTextBox1.SelectionAlignment=HorizontalAlignment.Center;
  75. this.richTextBox1.Focus();
  76. }
  77. privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse)
  78. {
  79. if((e.KeyChar<48||e.KeyChar>57)&&e.KeyChar!=8&&e.KeyChar!=13)
  80. {
  81. e.Handled=true;
  82. }
  83. elseif(e.KeyChar==13)
  84. {
  85. TextBoxtxt=(TextBox)sender;
  86. if(txt.Text.Length>0)
  87. ApplyTextSize(txt.Text);
  88. e.Handled=true;
  89. this.richTextBox1.Focus();
  90. }
  91. }
  92. privatevoidtextBox1_Validating(objectsender,CancelEventArgse)
  93. {
  94. TextBoxtxt=(TextBox)sender;
  95. ApplyTextSize(txt.Text);
  96. this.richTextBox1.Focus();
  97. }
  98. //改动字体大小
  99. privatevoidApplyTextSize(stringtextSize)
  100. {
  101. floatnewSize=Convert.ToSingle(textSize);
  102. FontFamilycurrentFontFamily;
  103. FontnewFont;
  104. currentFontFamily=this.richTextBox1.SelectionFont.FontFamily;
  105. newFont=newFont(currentFontFamily,newSize);
  106. this.richTextBox1.SelectionFont=newFont;
  107. }
  108. //翻开网页
  109. privatevoidrichTextBox1_LinkClicked(objectsender,LinkClickedEventArgse)
  110. {
  111. System.Diagnostics.Process.Start(e.LinkText);
  112. }
  113. //翻开文件
  114. privatevoidbutton1_Click(objectsender,System.EventArgse)
  115. {
  116. try
  117. {
  118. this.richTextBox1.LoadFile(@"..\..\test.txt");
  119. }
  120. catch(System.IO.FileNotFoundException)
  121. {
  122. MessageBox.Show("Filenotfound!");
  123. }
  124. }
  125. //保存文件
  126. privatevoidbutton6_Click(objectsender,System.EventArgse)
  127. {
  128. try
  129. {
  130. this.richTextBox1.SaveFile(@"..\..\test.txt");
  131. }
  132. catch(System.Exceptionerr)
  133. {
  134. MessageBox.Show(err.Message);
  135. }
  136. }

在C# RichTextBox的内容内查找文本:

重载列表

在 RichTextBox 控件的文本中查找字符列表中某个字符的***个实例

[C#] public int Find(char[]);

示例

[Visual Basic, C#, C++] 下面的示例在 RichTextBox 的内容中查找在 text 参数中传递到办法的字符。如果在 RichTextBox 中找到了 text 数组的内容,则该办法回来所找到值的索引;不然,它将回来 -1。该示例假定此办法坐落 Form 的类中,该窗体包括一个名为 richTextBox1 的 RichTextBox 控件和一个连接到该示例中界说的单击事情处理办法的 Button 控件(名为 button1)。

[C#]

  1. privatevoidbutton1_Click(objectsender,System.EventArgse)
  2. {
  3. MessageBox.Show(FindMyText(newchar[]{'D','e','l','t','a'}).ToString());
  4. }
  5. publicintFindMyText(char[]text)
  6. {
  7. //Initializethereturnvaluetofalsebydefault.
  8. intreturnValue=-1;
  9. //Ensurethatasearchstringhasbeenspecifiedandavalidstartpoint.
  10. if(text.Length>0)
  11. {
  12. //Obtainthelocationofthefirstcharacterfoundinthecontrol
  13. //thatmatchesanyofthecharactersinthechararray.
  14. intindexToText=richTextBox1.Find(text);
  15. //DeterminewhetherthetextwasfoundinrichTextBox1.
  16. if(indexToText>=0)
  17. {
  18. //Returnthelocationofthecharacter.
  19. returnValue=indexToText;
  20. }
  21. }
  22. returnreturnValue;
  23. }

在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#]

  1. publicboolFindMyText(stringtext)
  2. {
  3. //Initializethereturnvaluetofalsebydefault.
  4. boolreturnValue=false;
  5. //Ensureasearchstringhasbeenspecified.
  6. if(text.Length>0)
  7. {
  8. //ObtainthelocationofthesearchstringinrichTextBox1.
  9. intindexToText=richTextBox1.Find(text,RichTextBoxFinds.MatchCase);
  10. //DetermineifthetextwasfoundinrichTextBox1.
  11. if(indexToText>=0)
  12. {
  13. returnValue=true;
  14. }
  15. }
  16. returnreturnValue;
  17. }

在C# RichTextBox控件的某个文本规模中查找字符列表的某个字符的***个实例。

[C#] public int Find(char[], int, int);

在对查找使用特定选项的情况下,在 RichTextBox 控件的文本中查找坐落控件内特定方位的字符串。

[C#] public int Find(string, int, RichTextBoxFinds);

在对查找使用特定选项的情况下,在 RichTextBox 控件文本中查找控件内某个文本规模内的字符串。

【修改引荐】

  1. 总结C#哈希表的用法
  2. 不相同的入门:看C# Hello World的17种写法
  3. 什么是WMI?及其示例
  4. 从C#到C++简单呈现的问题解答
  5. 浅议.NET、ASP.NET和C#的联系
转载请说明出处
知优网 » 详解C# RichTextBox的使用方法(C#richtextbox)

发表评论

您需要后才能发表评论