Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Общие правила заполнения 20 текстбоксов. Ундо итд Добавлено: 01.10.05 19:47  

Автор вопроса:  student-uni
Имею много текстбоксов. Штук 20 на форме.
В каждом надо проверять чтобы были только цифры и буквы,
а по искейпу делать ундо. Это все получилось.
/не спешите материть за тупой вопрос/
Вопрос в другом:
В результате
у двадцати текстбоксов
в двадати обработчиках события выхода из текстбокса
стоит одинаковый текст, с разницой только в номере
текстбокса.
Такая простыня - распечатать - мумию завернуть.
Вопрос: а что нибудь более универсальное можно
было бы сделать ? Я в смысле, чтобы написать обработчик
один раз, и применить его ко всем текстбоксам на форме.

Ответить

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

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



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #1
Добавлено: 01.10.05 20:12
А они у тебя как массив элементов? или по отдельности? Если я правлиьно понял, то тебе надо типа того:

Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then Text1(Index).Text = ""
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #2 Добавлено: 02.10.05 12:07
Похоже. Но нужен массив ?
Т.е. у тебя есть доп параметр Index
в котором ты передаёшь номер текстбокса.

Вопро 1
А как ты его в событие кейдаун вставил ?
Или это не событие а подпрограмма,
вызываемая в событии ?

Вопр 2
Text1(Index).Text - это что такое?
как это объявить ?

Моё событие кейПресс имеет всего два параметра.
вот код который я использую для 20 текстбоксов


Private Sub TextBox11_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox11.KeyPress
        If Asc(e.KeyChar) = 27 Then
            TextBox11.Undo()
        End If
    End Sub


я так понимаю надо внутри события использовать сабу в которую вынести

 If Asc(e.KeyChar) = 27 Then
            TextBox11.Undo()
        End If


Саба должна получать номер текстбокса
допустим

'каждое их моих 20 событий имеет теперь только сабу
Private Sub TextBox11_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles
MySub (NomerTextboxa)
End Sub

'и всего одну сабу

Private sub MySub(byVal NomerTextboxa As Integer)
If Asc(e.KeyChar) = 27 Then
            TextBox(NomerTextboxa).Undo()
        End If

End Sub


Я правильно понял ?
Тогда как объявить TextBox(NomerTextboxa) ?

Ответить

Номер ответа: 3
Автор ответа:
 el-paso



Вопросов: 3
Ответов: 164
 Профиль | | #3 Добавлено: 02.10.05 14:21
Задай всем TextBox'ам на форме одинаковое имя. При первом же конфликте имён
ВБ спросит тебя, надо ли создать массив. Ответишь "да" и увидишь, что в
свойстве Index TextBox'ов с одинаковыми именами появится число, обозначающее
индекс. Соответственно при создании события у тебя в обработчике появится
третий параметр (Index).

Ответить

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



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #4
Добавлено: 02.10.05 15:51
НЕ совсем создать, надо копировать и вставить. в диалоге ответить, что да, я хочу создать массив. и тогда каждый из них будет отличаться тока по Index

Ответить

Номер ответа: 5
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #5
Добавлено: 02.10.05 15:58
Private Sub TextBox11_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles
Тока что пишешь на VB.NET так что за работоспособность идеи не ручаюсь

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 02.10.05 23:14
форум указывать надо!

Ответить

Номер ответа: 7
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #7
Добавлено: 05.10.05 02:04
Я видел как-то в SDK пример работы с массивом элементов в VB.NET.

Ответить

Страница: 1 |

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



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