I've found a workaround for this problem, which I have on my own.
Most of what I've read over here is true. And the approaches "à la" AlphaBlendTextBox are way too complex or too time-consuming for some environments, already heavily charged.
Assume you have a given background color and a given picture or whatever you want to see through the RichTextBox control. This is what I've done (summarized):
- on the main form, you place the picture, text, buttons or whatever as projected, with the proper background color and / or picture
- create a new form and position it wherever appropriate
- set this new form
TransparencyKey to SystemColors.InactiveBorder
- take care of this form border properties (
FormBorderStyle to FormBorderStyle.None; ControlBox,MinimizeBox, MaximizeBox and ShowIcon to false, TopMost to true, StartPosition to FormStartPosition.Manual, SizeGripStyle to SizeGripStyle.Hide), so there's no visible form structures
- create a
RichTextBox with the same size of the form and located on its upper, left corner
- set this box
BackColor to SystemColors.InactiveBorder (remember the TransparencyKey?)
and its BorderStyle to None as well
- take care of textbox contents: color(s), font(s) and strings
- synchronize this form visibility with whatever you need to and... voilà! You can see your application background through whatever you write and edit on the text box!
I can't pretend this approach fits everybody, but it is way simpler than others I've seen and, as long as I can keep it that way, I do prefer the simpler solutions.
Of course, when you close the main form, you must take care of the child form, but this is pretty basic for you, isn't it?
Enjoy!