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

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

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

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

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

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

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


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