I too tried to write my own text editor from scratch, back in my VB6 days. The problem was that there is very little information on something like this, and google doesn't help since you aren't really sure what exactly to look for.
After a while of on and off again work, porting code to VB.Net and then to C# (I do it in the spare time of my spare time) I have come close to completing it.
Anyway, I found that there are many different parts of a text editor, the user control being the last (yet very important) part of it.
First off, you have to decide how you are going to implement the data structures that will be containing the text. Read these pages about
Text Editor Data Structures.
This and other structures which would describe the text (management of lines, undo stack, coloring, etc) would make up the underlying data part of the control.
I spent a good part of my time figuring this stuff out until I found out about
Sharp Develop. While most of their source code is good, differing a little when it came to the data structure, it did probably shave off some time from my project (It is hard code to follow, but the data part of it is well structured unlike the GUI part of it which is, imo and to put simply, awful).
It is a long road to travel on, but probably a lot shorter if you dedicate more time and effort than I did, and you'll be a better programmer for it.