powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как нормально рисовать с помощью DrawString?
4 сообщений из 4, страница 1 из 1
Как нормально рисовать с помощью DrawString?
    #32875585
MikeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я наследую обычный TextBox.
При получении фокуса ставлю UserPaint в False.
А при потере фокуса - UserPaint = True.
Т.е. при отсутствии фокуса я рисую свой текст вместо обычного,
использую для этого DrawString().
Но как бы я не рисовал строчку, она выглядит не так как при обычной отрисовке системой.
Я передаю this.ClientRectangle() и StringFormat с нужными Align, фонты и цвета текстбокса,
но мой текст всегда чуть ниже и правее чем обычный (на 1 пиксел) и с правого краю всегда остается много пустого пространства (когда текст на самом деле длинный).

Короче, как нормально отрисовать текст в текстбоксе, чтоб вид точно совпадал с тем, когда он отрисовывается системой? Какие Rectangles и StringFormat для этого использовать.

Спасибо.
...
Рейтинг: 0 / 0
Как нормально рисовать с помощью DrawString?
    #32876131
MikeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. вопрос такой:
кому-нибудь известно, как система (Microsoft) рисует текст и рисунки с использованием DrawString и DrawImage для обычных контролов TextBox и Label. Какие нужно передавать атрибуты ImageAttributes?

Спасибо.
...
Рейтинг: 0 / 0
Как нормально рисовать с помощью DrawString?
    #32878259
Фотография josia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я понимаю, что это горю не поможет, но если Вы хотите что-бы текст выглядел точно как при стандартной отрисовке, почему не воспользоваться property Text ?
...
Рейтинг: 0 / 0
Как нормально рисовать с помощью DrawString?
    #32883621
MikeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что я добавил в свой класс св-во Format.
Так вот, когда мы в фокусе, то UserPaint=false и отрисовка происходит станадартным способом, а когда мы теряем фокус, то UserPaint=true и мы рисуем Text с применением формата Format (Похожее поведение в MS Access).

А Text нельзя в данной задаче использовать, т.к. присутствует DataBinding на это св-во.
Т.е. если в источнике данных хранится число 2.3434839845, а мы хотим, чтобы оно в TextBox отображалось как 2.34, то мы задаем формат Format = "N2". И при редактировании (в фокусе) поля мы видим 2.3434839845, а вне фокуса мы видим 2.34.

Может кто-нить предложит более красивый способ применения формата?

Спасибо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как нормально рисовать с помощью DrawString?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]