Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемы с Label control

411
30 августа 2007 года
Serzh
136 / / 09.07.2003
Свойство Caption этого контрола отображается только горизонтально, что не всегда удобно. Выход - установить свойство Trasparent и наложить Label прямо на ячейку таблицы, где текст повернут по произвольным углом к горизонтали. Ан нет!!!
На эту Label присутствуют две обработки события - на одиночный и на двойной клик по надписи. Причем обработка одиночного клика - пустышка типа Sub - End Sub. Обработка двойного клика чуть по сложнее.
Проблема в том, что при одиночном клике свойство Transparent теряется напрочь и вместо любимой надписи я вижу тока прямоугольник заданного цвета, причем эта "картинка" никак не сбрасывается, кроме варианта с ручной работой посредством конструктора Control-ов.
Как с этим бороться?
251
30 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Что с лэйблом? Вопрос поставлен неясно.
411
31 августа 2007 года
Serzh
136 / / 09.07.2003
Поясняю:
Label используется для вызова обработки, например сортировки или фильтрации листа таблицы по содержимому той или иной колонки.
Колонки имеют разную ширину, при этом в заголовках узких колонок
текст повернут на бок. В Label такой фокус невозможен. Поэтому я накладываю эту Label на заголовок колонки, устанавливаю в ём
Caption = "."
AutoSize = False
Forecolor = Backcolor
BackStyle = Transparent (прозрачный то бишь)

Вставляю две обработки:
Sub Label1_Clicl()
' Тут ничего не выполняется. И нужна она только для того чтобы
' незаметной была реакция Label-а, когда мыша на него ставится (IMHO)
End Sub

и

Sub Label1_DblClick(ByVal lR As MsForm....)
' запуск нужной обработки должен выполняться по двойному клику
' на Label-е (в нашем случае "заголовке колонки")
...
End Sub

Вроде все прекрасно, НО! когда кликаю по Label-у один раз, изначально видимый текст заголовка закрывается прямоугольником цвета ForeColor.
И никакими силами восстановить отображение текста заголовка не удается, кроме как через ручной вызов конструктора элементов управления... А на двойной клик все работает как нада!
В обсчем не аккуратненько как-то, и как с этим бороться не знаю.
251
31 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Так код покажите?! А что в функциях? Если ничего, то зачем они? Все равно после компиляции и не будет.
411
03 сентября 2007 года
Serzh
136 / / 09.07.2003
Как я уже говорил в процедуре Label1_Click() ничего нет - пустышка!
Впрочем, даже если полностью закомментировать эту функцию, реакция Label-а не меняется. То есть прямоугольник все равно закрывает текст заголовка, я ее пока оставил, чтобы было куда вносить код, который бы
блокировал забивание заголовка (по сути - восстанавливал изображение заголовка). Просто может быть есть другие способы
борьбы с этим эффектом, что называется на уровне недокументированных возможностей объекта Label...

Что касается процедуры Label1_DblClick(ByVal lMode As Boolean), то она как раз работает нормально. Если так уж нужен код, пожалуйста, не жалко (я там устанавливаю некий фильтр по столбцу):

Dim xf As Variant
CheckFilterMode ' здесь проверяется активность автофильтра
' и при необходимости автофильтр активизируется
xf = Trim(InputBox("Введите трехзначный код" + vbCr + _
"подразделения-получателя", cFc))
' cFc - Public переменная, определяет заголовок окна сообщения
If Len(xf) > 0 Then
If Len(xf) < 3 Then
xf = xf + "*"
Else
xf = Left(xf, 3)
End If
Selection.AutoFilter Field:=1, Criteria1:="<>", _
Operator:=xlOr, Criteria2:=xf
Worksheets(1).Label2.ForeColor = vbBlue ' подкрашиваем заголовок
' чтобы видеть по какому из
' них установлен фильтр
Else
Selection.AutoFilter Field:=1
Worksheets(1).Label2.ForeColor = vbBlack
End If
Range("C12").Select
Protect Password:="01", AllowFiltering:=True
End Sub

Private Sub CheckFilterMode()
' Контроль активации автофильтра
Unprotect Password:="01"
If AutoFilterMode = False Then
Range("C12:L12").Select
Selection.AutoFilter
End If
End Sub
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог