Подсветка активного поля в форме
Изменяет цвет фона поля в форме на время пребывания в нем фокуса - функциональной нагрузки -НОЛЬ - за то мигающий курсор, глазами (возможно усталыми) искать не надо. В данном случае с белого цвета (фон по умолчанию) - на желтый
Для подсвечиваемых полей необходимо установить свойства событий:
Получение фокуса: =FRMControlFocusInOut([Name];-1)
Потеря фокуса: =FRMControlFocusInOut([Name];0)
Примечание:
Работаем через передачу имени формы, на случай если их "висит" больше одной, иначе можно было бы работать так:
Screen.ActiveForm.ActiveControl.BackColor = ColorGotFocus
Функция:
Public Function FRMControlFocusInOut(strFormName As String, blnGotFocus As Boolean, Optional blnInSubForm As Boolean)
On Error GoTo FRMControlFocusInOut_Err
If blnInSubForm Then
Set objCtrl = Screen.ActiveControl
Else
Set objCtrl = Forms(strFormName).ActiveControl
End If
With objCtrl
Select Case blnGotFocus
Case True
.BorderColor = clGotFocusBorderColor
.BackColor = clGotFocusBackColor
Case False
.BorderColor = clNormalBorderColor
.BackColor = clNormalBackColor
End Select
End With
Set objCtrl = Nothing
Exit Function
FRMControlFocusInOut_Err:
Err.Clear
End Function
Результат может выглядеть так:
Можно добиться примерно того же результата и без кода - просто задайте цвет фона полей - а затем сделайте их прозрачными - при получении фокуса поле будет подсвечиваться ранее заданным цветом. Будет только один недостаток - не активные поля имеют тот же цвет что и форма.
MSA-2007 и выше ( 72 kB) Пример
|