




Я не использовал OwnerDraw в текстовом поле, но я использовал его в других элементах управления, таких как listbox и listview, и я видел, как другие люди делали это с текстовыми полями. Я нашел руководство, которое должно указать вам правильное направление, оно не используется для отображения изображений в текстовом поле как таковое, но его можно использовать для этого:
http://www.codedblog.com/2007/09/17/owner-drawing-a-windowsforms-textbox/
Надеюсь, с этого вы хотя бы начнете ...
Хм. Почему бы вам не создать новый userControl с BackColor TextBox. Скрыть границу текстового поля. Затем подпишитесь на событие Paint UC и нарисуйте границы, чтобы они напоминали границы текстового поля. В Paint Handler вы также можете нарисовать изображение. В UserControl вы можете легко установить границы любого дочернего элемента управления, такого как текстовое поле, или написать собственный макет и разместить текстовое поле в любом месте. Надеюсь, это поможет.
Что вы можете сделать, так это создать новый класс, унаследованный от класса System.Windows.Forms.TextBox. Затем вы должны установить стиль UserPaint элемента управления, используя
SetStyle(ControlStyles.UserPaint, true)
в конструкторе, чтобы вы могли рисовать текстовое поле самостоятельно, и, наконец, вы должны переопределить либо OnPaint, либо OnPaintBackground, чтобы нарисовать свой элемент управления.
Я подозреваю, что это будет нетривиально, поскольку рисование текста может быть довольно сложным, но это должно быть возможно.