Страница: 1 | 2 | 3 |
Вопрос: Проверка заполнения всех полей формы.
Добавлено: 01.05.07 14:37
Автор вопроса: fuzytsfcrew | Web-сайт:
Не подскажете следуещее - как в коде выразить, чтоб при любом не заполненном поле textbox или combo кнопка не становилась активной? Не ужели прийдется писать огромное количество if...then или есть более лаконичный способ?
программа должна постоянно проверять наличие текта в textbox-ах и делать кнопку активной, если в каждом что-то есть.
Ответы
Всего ответов: 45
Номер ответа: 1
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #1
Добавлено: 01.05.07 15:00
If Text1.Text = "" Then
Command1.Enabled = False
Else: Command1.Enabled = False
End If
End Sub
Самий простой способ
Номер ответа: 2
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #2
Добавлено: 01.05.07 15:17
Номер ответа: 3
Автор ответа:
Retupa
Вопросов: 1
Ответов: 51
Профиль | | #3
Добавлено: 01.05.07 15:42
Или так
Private Sub Text1_Change()
Command1.Enabled=cbool(len(Text1))
End Sub
Номер ответа: 4
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #4
Добавлено: 01.05.07 16:48
Если написать эти процедуры для всех TextBox'ов, то при изменении любого из них кнопка становится активной. А нужно, чтоб она стала активной только при заполнении всех, а при каком-то пустом опять становилась неактивной!
Номер ответа: 5
Автор ответа:
Retupa
Вопросов: 1
Ответов: 51
Профиль | | #5
Добавлено: 01.05.07 17:20
А подумать лень?
Private Sub Text1_Change()
call chkBox
End Sub
Private Sub Text2_Change()
call chkBox
End Sub
Private Sub chkBox()
Command1.Enabled=cbool(len(Text1))
if not Command1.Enabled then exit sub
Command1.Enabled=cbool(len(Text2))
if not Command1.Enabled then exit sub
'...
End Sub
или так
Private Sub chkBox()
Command1.Enabled=iif(cbool(len(Text1)) and cbool(len(Text2)),true,false)
End Sub
Номер ответа: 6
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #6
Добавлено: 01.05.07 17:58
CheckInfo
End Sub
Private Sub Text1_Change()
CheckInfo
End Sub
Private Sub CheckInfo()
On Error GoTo e
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).Text = "" Then
Command1.Enabled = False
Exit Sub
End If
e:
Next i
Command1.Enabled = True
End Sub
Номер ответа: 7
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #7
Добавлено: 01.05.07 20:48
Да Arseny ти прав.True.У все тексти ставиш :doc a в конце private sub doc() if text1.Text =""and text2.Text="" ... Then comand1.Enabled=false else...
Номер ответа: 8
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #8
Добавлено: 01.05.07 20:57
Спасибо всем большое, но я придумал попроще:
Private Sub Text1_Change()
Command1.Enabled = Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> ""
End Sub
Private Sub Text2_Change()
Command1.Enabled = Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> ""
End Sub
Private Sub Text3_Change()
Command1.Enabled = Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> ""
End Sub
Номер ответа: 9
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #9
Добавлено: 01.05.07 21:06
В продолжении темы следующий вопрос: как контролировать ввод только цифр, причем с определенным количеством символов для каждого текстбокса?
Номер ответа: 10
Автор ответа:
intel-DX
ICQ: 445091742
Вопросов: 4
Ответов: 169
Профиль | | #10
Добавлено: 01.05.07 23:14
Ничего сложного
Text1.MaxLenght = Мах количеством символов
Private Sub Text1_KeyPress(KeyAscii As Integer)
'***kolu steraemo 4uslo to***********
If KeyAscii = 8 Then Exit Sub
'****kolu vvodumo tsufru***************
If KeyAscii > 47 And KeyAscii < 58 Then Exit Sub
'****kolu inwi sumvolu to ne vvodnmo i zvyk****
KeyAscii = 0
Beep
End Sub
Номер ответа: 11
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #11
Добавлено: 02.05.07 00:47
Вышел у меня такой вот скромненький код , для 3-х текстбоксов (text1, text2, text3) и одной кнопки:
Private Sub Text1_Change()
Command1.Enabled = Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> ""
End Sub
Private Sub Text2_Change()
Command1.Enabled = Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> ""
End Sub
Private Sub Text3_Change()
Command1.Enabled = Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> ""
End Sub
' ðàçðåøèòü ââîäèòü òîëüêî öèôðû äëÿ text1
Private Sub Text1_KeyPress(KeyAscii As Integer)
'***kolu steraemo 4uslo to***********
If KeyAscii = 8 Then Exit Sub
'****kolu vvodumo tsufru***************
If KeyAscii > 47 And KeyAscii < 58 Then Exit Sub
'****kolu inwi sumvolu to ne vvodnmo i zvyk****
KeyAscii = 0
Beep
End Sub
' ðàçðåøèòü ââîäèòü òîëüêî öèôðû äëÿ text2
Private Sub Text2_KeyPress(KeyAscii As Integer)
'***kolu steraemo 4uslo to***********
If KeyAscii = 8 Then Exit Sub
'****kolu vvodumo tsufru***************
If KeyAscii > 47 And KeyAscii < 58 Then Exit Sub
'****kolu inwi sumvolu to ne vvodnmo i zvyk****
KeyAscii = 0
Beep
End Sub
' ðàçðåøèòü ââîäèòü òîëüêî öèôðû äëÿ text3
Private Sub Text3_KeyPress(KeyAscii As Integer)
'***kolu steraemo 4uslo to***********
If KeyAscii = 8 Then Exit Sub
'****kolu vvodumo tsufru***************
If KeyAscii > 47 And KeyAscii < 58 Then Exit Sub
'****kolu inwi sumvolu to ne vvodnmo i zvyk****
KeyAscii = 0
Beep
End Sub
но есть маленькое НО! MaxLenght я ставлю для каждого текстбокса отдельно (такое, какое мне нужно) но это ж не значит что при недоборе пары цифр от MaxLenght кнопка не станет активной, ведь проверяется только наличие в ней чего-то а не его колличество. нужно, чтоб MaxLenght был 8 и только когда в текстбоксе будет действительно 8 цифр, тогда command1.enable=true.
intel-DX
в твоей проге и точка тоже залочена, как подправить?
Номер ответа: 12
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #12
Добавлено: 02.05.07 02:57
Воспользуйся постом 7 код менший будет
Номер ответа: 13
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #13
Добавлено: 02.05.07 02:57
Воспользуйся постом 7 код менший будет
Номер ответа: 14
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #14
Добавлено: 02.05.07 03:04
Нащот "но" зделай так если text1.Text прошол все условия тогда a=a+1 если и text2.Text прошол тогда а=а+1 text3 аналог.А пото проверяеш if a=3 then command1.Enabled=true else...
Номер ответа: 15
Автор ответа:
intel-DX
ICQ: 445091742
Вопросов: 4
Ответов: 169
Профиль | | #15
Добавлено: 02.05.07 03:06
4 fuzytsfcrew
1)Исправление для точки:
If KeyAscii = 46 Or (KeyAscii > 47 And KeyAscii < 58) Then Exit Sub
2)У меня есть идеи, только скажи сколько текстбоксов у тебя будет(примерно)