Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: выделить заданную область лэйбла другим цветом Добавлено: 15.10.08 01:22  

Автор вопроса:  busha
Как выделить заданную область лэйбла другим цветом?
Например 2-3 символа слева

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 15.10.08 02:50
Для этого надо забить на лейбл как минимум =) Он тут вообще ни к чему... Тут надо рисовать на устройстве, ИМХО.

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 15.10.08 08:22
Т.е. сабклассируем окошко формы (или контейнера внутри формы) и отрисовываем поверхность TextOut или DrawText. А сам лейбл нам тут не пригодится, т.к. это неоконный контрол.

Или есть более тупой способ: для каждой надписи создать массив контролов-лейблов одинакового размера и находящихся в одном и том же месте. Лейблы сделать с прозрачным фоном. Цвет лейблов сделать разный, строку надо разбивать на куски и учитывать z-index для того, чтобы знать, какой лейбл выше или ниже другого. Нижний лейбл показывает всю строку целиком, скажем синего цвета. Верхний лейбл показывает первые несколько символов, допустим красным. Примерно так. Выглядит странновато, но новичкам этот подходж освоить будет проще.

Ответить

Номер ответа: 3
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #3
Добавлено: 15.10.08 21:28
Ну а почему бы не так:
1 Создаем переменную типа Имейдж. (размер картинки равен размеру лейбла)
2 заливаем на картинке прямоугольник с размерами и положением, как нам надо.
3 Указываем, что Лейбл.БекграундИмейдж=наш Имейдж-переменная.
Все это было бы неплохо поместить в событие формы Paint, тогда если форма была свернута или перекрыта другой, наша отрисовка никуда не пропадет.

Тут только такой момент: выделяем определенным цветом не посимвольно, а точечно (например область шириной 15 может перекрыть не 3 а 3,2 символа).

Ответить

Номер ответа: 4
Автор ответа:
 busha



Вопросов: 22
Ответов: 18
 Профиль | | #4 Добавлено: 15.10.08 22:28
Спасибо, мне нужно выделять либо "1." либо "10." т.е. номера стоящие перед самим текстом
Просто можно вычислить число знаков до точки, а там с помощью If ... Then ... можно
указать ширину Image

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 16.10.08 09:02
Ты знаешь, я бы на твоем месте и в данном случае не придумывал бы ничего сверхсложного, а тупо бы создал два массива контролов - лейблов: один для номеров, а другой для текста. А всего-то. Заполнить эти массивы можно динамически при создании формы и, соответственно их позиционировать на форме в цикле. Или же, если текст не меняется, то просто сделать это в режиме конструктора и все.

Ответить

Номер ответа: 6
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #6
Добавлено: 16.10.08 19:42
+1

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам