Click here to Skip to main content
13,200,202 members (56,459 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


19 bookmarked
Posted 24 Sep 2012

[WinForms] RichTextBox ToolTip like Visual-Studio's

, 25 Sep 2012
Rate this:
Please Sign up or sign in to vote.
C# RichTextBox tooltip like Visual Studio's.


This is my first post on the CodeProject.

The main idea that pushed me to write this article is that I thought it might be useful to you as it was for me! First of all I searched on the net for something like this component, but unfortunately I didn't find anything like a readymade control or component to use in a project of mine when I was in need for it. So, I decided to stop relying on others work :p and started to make my own. The component works as the following figure shows: 

The component  dependencies

The component inherits from the standard ToolTip and relies on the following .NET methods of the RichTextBox control:  

  • GetCharIndexFromPosition(Point)
  • GetLineFromCharIndex(int)

The component is style-able: 

  • You can specify your own color for the text of both; ToolTip title / ToolTip description text. 
  • You can specify your own font for the text for each of both; ToolTip title / ToolTip description text.
  • You can set your own background bitmap.

How to use the component

Here's a step-by-step:

  1. On your project add a reference to the class library file "RTB_ToolTip.dll".
  2. On the VS designer add a new RichTextBox control and let's name it "richTextBox1"
  3. On the VS editor add the following using-directive: 
  4. using RTB_ToolTip;
  5. After the 'InitializeComponent' or on the 'Load' event (or wherever you want) do the following:
  6. // 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;
  7. Now push F5 button or click on Debug button to see your new RichTextBox behavior.
  8. When the window is shown, type on the richTextBox1 control something like this "Title" / "abc" / "123" (quotes are not necessary). Now put the mouse over a word you typed and the ToolTip will show up automatically like this:

Additional info  

  • If you want to change ToolTip Title/Description color, do the following:
  • rtb.TitleBrush = Brushes.Blue;  


    rtb.DescriptionBrush = new SolidBrush(Color.Red);
  • You can also set your own pre and after text of the ToolTip title. For example: 
  • rtb.TitlePrefix = "Definition for '";
    rtb.TitleSuffix = "':";

    The result would look like this:

    You can access the other properties (TitleFont / DescriptionFont / BackgroundImage...) by the same way.

  • For customizing the way the 'SyntaxCheking' class determines words' start and end boundaries you can reset that in the RichTextBoxToolTip.Chars property. Example: 
  • rtb.Chars = new List<Char>() {' ', '(', ')', '?'};

How does it work?  

Sorry if the source code looks a little bit complicated to understand, I'll try to tell you how it works. See the following figure please:


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Hicham El Horri
Morocco Morocco
He is a 21 year-old student studying at Mohammed I University (in Oujda - Morocco). Born in Aklim - Berkane, Morocco.
Hates discrimination with all its kinds.
He is interested in programming on Visual Studio since 2009.
Current programming languages:
+ VBScript (for both: Windows & web).
+ JScript (for both: Windows & web).
+ Visual Basic 6.0 and higher.
+ C# 2003 and higher.
+ RealBasic.
+ Html.
+ Still learning C++.

You may also be interested in...

Comments and Discussions

GeneralMy vote of 5 Pin
Member 807057813-Jul-13 10:25
memberMember 807057813-Jul-13 10:25 
Questionnice work sir but got a question here Pin
Elegiac2-May-13 20:01
memberElegiac2-May-13 20:01 
but can it be without any reference? even a simple tooltip in text just have the mousehover and mouseleave?

please help thanks !
Question@Bvnvbn Sdasdg Pin
Hicham El Horri25-Mar-13 15:18
memberHicham El Horri25-Mar-13 15:18 
QuestionIt's really odd behaviour!! Pin
Hicham El Horri25-Mar-13 15:12
memberHicham El Horri25-Mar-13 15:12 
QuestionSmall Issue Pin
mikeaerni17-Mar-13 17:00
membermikeaerni17-Mar-13 17:00 
QuestionIs Very Good But I hava a Question to Ask Pin
Bvnvbn Sdasdg5-Jan-13 6:34
memberBvnvbn Sdasdg5-Jan-13 6:34 
QuestionThanks Pin
Hicham El Horri27-Oct-12 20:55
memberHicham El Horri27-Oct-12 20:55 
GeneralMy vote of 5 Pin
pcs041425-Oct-12 4:10
memberpcs041425-Oct-12 4:10 
QuestionCool Pin
Zac Greve8-Oct-12 3:32
memberZac Greve8-Oct-12 3:32 
QuestionGood Work Pin
Al-Samman Mahmoud24-Sep-12 8:50
memberAl-Samman Mahmoud24-Sep-12 8:50 
AnswerRe: Good Work Pin
Hicham El Horri24-Sep-12 22:07
memberHicham El Horri24-Sep-12 22:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.171020.1 | Last Updated 25 Sep 2012
Article Copyright 2012 by Hicham El Horri
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid