|
|
|
| Нужно для нескольких texboxoв на форме установить одну и ту же функцию на изменение данных
можно ли как-нибудь объявить в переменных имена texboxoв
Сейчас у меня получается, что для каждого texboxа я пишу почти одно и тоже...
(((
Private Sub txt_chisla_Change()
Dim i As Integer, j As Integer
Dim str As String
j = txt_chisla.SelStart
str = txt_chisla.Text
For i = 1 To Len(str)
If Mid(str, i, 1) Like "[!0-9,.]" Then
str = Left(str, i - 1) & Mid(str, i + 1)
End If
Next i
If str <> txt_chisla.Text Then
txt_chisla = str
txt_chisla.SelStart = j - 1
End If
End Sub
|
| |
|
| |
|
11 Кб. |
|
| способов много: можно использовать класс, можно макрос и т.д.
Можно так, как в приложенном примере.
Но если вы хотите, чтобы Textbox содержал только цифры, то лучше использовать маску или Validation rule. Например, текст может быть добавлен из буфера обмена и тогда ваша процедура оставит часть текста. | |
|
| |
|
|
|
| Спасибо большое! Очень помогли.
Поздравляю с прошедшим Юбилеем! | |
|
| |
|
|
|
| По существу вопроса:
1. К элементу формы можно обращаться так: Me.Controls("Имя") или Me("Имя")
Такая ссылка позволяет использовать переменные и работает быстрее, чем Me![Имя]. Синтаксис Me.Имя (как у вас) работает, но обычно используется для обращения к свойствам и методам объекта.
2. У формы есть чудное свойство ActiveControl. Это как раз для вашего случая. | |
|
| |