MS-ACCESS Как изменить цвет шрифта текстового поля с помощью функции od подпрограммы - PullRequest
0 голосов
/ 13 марта 2020

У меня есть несколько текстовых полей в форме, и я установил одно из них с этими свойствами по умолчанию.

txtSearchBox.Value = "Wait.."
txtSearchBox.ForeColor = 2
txtSearchBox.FontItalic = True

Я хочу добавить событие onClick в этот txtSearchBox, чтобы изменить его свойства с помощью подпрограммы или функции. потому что я хочу использовать этот sub / fun для других текстовых полей ..

, поэтому я объявил глобальную переменную

Dim CurrentCtrl As Object

и попытался сделать эту работу ..

Private Sub txtSearchBox_Click()
CurrentCtrl = txtSearchBox.Name
txtWait4Input (CurrentCtrl)
End Sub

Private Sub txtWait4Input(CurrentCtrl As Object)
CurrentCtrl.ForeColor = 0
CurrentCtrl.FontItalic = False
CurrentCtrl.Value = Null
End Sub

но это не работает ..

1 Ответ

1 голос
/ 13 марта 2020
  1. использование Set

  2. удаление паренов из дополнительного вызова

  3. использование коллекции элементов управления

  4. Оператор Dim не создает глобальную переменную, для которой требуется Global или Publi c, Dim объявляет переменную, которая доступна только для модуля, который объявлен в

  5. переменная CurrentCtrl не должна объявляться в двух местах

Поэтому, если весь код находится за формой:

Dim CurrentCtrl As Object
_________________________________________
Private Sub txtSearchBox_Click()
Set CurrentCtrl = Me.Controls("txtSearchBox")
txtWait4Input
End Sub
_________________________________________
Private Sub txtWait4Input()
CurrentCtrl.ForeColor = 0
CurrentCtrl.FontItalic = False
CurrentCtrl.Value = Null
End Sub

Может устранить переменную в заголовке и задать строку:

Private Sub txtSearchBox_Click()
txtWait4Input Me.Controls("txtSearchBox")
End Sub
_________________________________________
Private Sub txtWait4Input(CurrentCtrl As Object)
CurrentCtrl.ForeColor = 0
CurrentCtrl.FontItalic = False
CurrentCtrl.Value = Null
End Sub
...