Вставить изображение в текстовое поле - PullRequest
2 голосов
/ 15 января 2009

У меня есть приложение Windows Forms (.Net 2.0), и у меня есть запрос на вставку некоторых пользовательских изображений в некоторые текстовые поля (как в новой версии Tortoise).

Ответы [ 3 ]

2 голосов
/ 15 января 2009

Я не использовал OwnerDraw для текстового поля, но я использовал его для других элементов управления, таких как список и просмотр списка, и я видел, как другие люди делали это с текстовыми полями. Я нашел учебник, который должен указывать вам правильное направление, он не используется для отображения изображений в текстовом поле как таковой, но он может быть использован для этого:

http://www.codedblog.com/2007/09/17/owner-drawing-a-windowsforms-textbox/

Надеюсь, это поможет вам начать хотя бы ...

1 голос
/ 16 января 2009

Что вы можете сделать, это создать новый класс, который наследуется от класса System.Windows.Forms.TextBox. Затем вы должны установить стиль элемента управления UserPaint, используя

SetStyle(ControlStyles.UserPaint, true)

в конструкторе, чтобы вы могли самостоятельно рисовать текстовое поле, и, наконец, вы должны переопределить либо OnPaint, либо OnPaintBackground, чтобы нарисовать свой элемент управления.

Я подозреваю, что это не будет тривиальным, поскольку отрисовка текста может быть довольно сложной, но это должно быть возможно.

1 голос
/ 16 января 2009

Хм. Почему бы вам не создать новый userControl, который имеет BackColor TextBox. Скройте Границу TextBox. Затем подпишитесь на событие Paint в UC и нарисуйте границы, напоминающие текстовое поле. В Paint Handler вы также можете нарисовать изображение. В UserControl вы можете легко установить границы любого дочернего элемента управления, такого как текстовое поле, или написать собственный макет и разместить текстовое поле в любом месте. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...