[WinForms] 类似 Visual Studio 的 RichTextBox 工具提示





5.00/5 (7投票s)
C# RichTextBox 工具提示,类似于 Visual Studio 的。
简介
这是我在 CodeProject 上的第一篇帖子。
促使我撰写这篇文章的主要想法是,我认为它对您可能有用,就像对我一样! 首先,我在网上搜索过类似此组件的东西,但不幸的是,我没有找到任何现成的控件或组件,可以在我需要时在我的项目中使用的。 因此,我决定停止依赖他人的工作:p 并开始自己制作。 组件的工作方式如图所示:
组件依赖
该组件继承自标准的 ToolTip
,并依赖于 RichTextBox
控件的以下 .NET 方法:
GetCharIndexFromPosition(Point)
GetLineFromCharIndex(int)
该组件可以自定义样式:
- 您可以为工具提示标题/工具提示描述文本指定自己的颜色。
- 您可以为工具提示标题/工具提示描述文本的每个文本指定自己的字体。
- 您可以设置自己的背景位图。
如何使用该组件
分步说明
- 在您的项目上添加对类库文件“RTB_ToolTip.dll”的引用。
- 在 VS 设计器中添加一个新的
RichTextBox
控件,并将其命名为“richTextBox1
”。 - 在 VS 编辑器中添加以下
using
指令: - 在“
InitializeComponent
”之后或“Load”事件(或您想要的位置)中,执行以下操作 - 现在按下 F5 按钮或单击调试按钮,以查看新的
RichTextBox
行为。
using RTB_ToolTip;
// Initialize a new RichTextBoxToolTip component
RichTextBoxToolTip rtb = new RichTextBoxToolTip();
// Set the desired RichTextBox control to use the ToolTip with
rtb.RichTextBox = richTextBox1;
// Initialize a new dictionary to fill in the desired information data
eDictionary dict = new eDictionary();
dict.Add("Title", "Description of the ToolTip here");
dict.Add("abc", "Alphabets :)");
dict.Add("123", "Numbers ;)");
// Assigne the dictionary to the RichTextBoxToolTip
rtb.Dictionary = dict;
当窗口显示时,在 richTextBox1
控件中键入类似“Title”/“abc”/“123”的内容(引号不是必需的)。 现在将鼠标放在您键入的单词上,工具提示将自动显示,如下所示
其他信息
- 如果您想更改工具提示标题/描述颜色,请执行以下操作
rtb.TitleBrush = Brushes.Blue;
或者
rtb.DescriptionBrush = new SolidBrush(Color.Red);
rtb.TitlePrefix = "Definition for '";
rtb.TitleSuffix = "':";
结果将如下所示
您可以通过相同的方式访问其他属性(TitleFont
/ DescriptionFont
/ BackgroundImage
...)。
SyntaxCheking
”类确定单词开始和结束边界的方式,您可以重置 RichTextBoxToolTip.Chars
属性。 例如:rtb.Chars = new List<Char>() {' ', '(', ')', '?'};
它是如何工作的?
如果源代码看起来有点复杂难以理解,我很抱歉,我会尝试告诉您它是如何工作的。 请参见下图