|
|
|
textbox
|
|||
|---|---|---|---|
|
#18+
работа с цифрами в textbox(ограничение ввода) от1 до 12, а 13 и далее запретить??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 23:54 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
1) у TextBox есть св-во MaxLength 2) в эвенте TextBox_Change сами проверяйте длину вводимого слова и при превышении отменяйте ввод I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 08:38 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
что-то я не туда нажимал... если кому дублировалось это сообщение - мои извенения... кинь на форму TextBox1, перетащи код '---------------------- Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode > 48 And KeyCode < 58 Or KeyCode = 8 Then If KeyCode <> 8 Then _ If CInt(TextBox1.Text & Chr$(KeyCode)) < 1 Or _ CInt(TextBox1.Text & Chr$(KeyCode)) > 13 Then KeyCode = 0 Else KeyCode = 0 End If End Sub '---------------------- удалять ненужные символы можно только клавишей BackSpace... можешь включить и код клавиши Del... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 10:00 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
да, дочитался, если и 13 надо запретить, то в проверке делаем до 12 вот так Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode > 48 And KeyCode < 58 Or KeyCode = 8 Then If KeyCode <> 8 Then _ If CInt(TextBox1.Text & Chr$(KeyCode)) < 1 Or _ CInt(TextBox1.Text & Chr$(KeyCode)) > 12 Then KeyCode = 0 Else KeyCode = 0 End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 10:05 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
не мой сегодня день.... в вышеуказанном коде запрещено и 0 вводить, т.е. 10 не будет... вот код, в ТекстБокс вводятся символы от 1 до 12.... Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode > 47 And KeyCode < 58 Or KeyCode = 8 Then If KeyCode <> 8 Then _ If CInt(TextBox1.Text & Chr$(KeyCode)) < 1 Or _ CInt(TextBox1.Text & Chr$(KeyCode)) > 12 Then KeyCode = 0 Else KeyCode = 0 End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 10:18 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
Этот код не защищает от копирования из clipboard. Нужен еще Event Validate хотя бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 17:35 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
Раз такое необычное требование, то Textbox замените на Listbox. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 17:37 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
qwerне согласен, разрешенный диаппазон вводимых симолов по коду ASCII от 48 до 57, т.е. ввод только цифр, другие клавиши (сочетания клавишь) при активном ТекстБоксе - игнорируются. Если надо перестраховаться, добавляем код на еще одну обработку: '-------------------------- Private Sub TextBox1_Change() If TextBox1.Text <> "" Then _ If CLng(TextBox1.Text) < 1 Or CLng(TextBox1.Text) > 12 Then TextBox1.Text = "" End Sub '-------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 22:16 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
WitC, Ваш код не работает. Он генерирует ошибку Type Mismatch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 22:45 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
прошу код ошибки (err.number)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 23:00 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
возможные причины: 1. когда TextBox1 кинете на форму, установите свойство TextBox1.Text="" (в панельке Property) (по умолчанию он он установлен в значение имени ТекстБокса, т.е. в TextBox1). У меня VB.Net 2008, код набивал в VBA, там по умолчание параметр TextBox1.Text="" думаю проблема решиться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 23:12 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
Private Sub Text1_Change() If IsNumeric(Text1.Text) Then If CInt(Text1.Text) > 12 Then Text1.Text = 12 End If End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = VNUM(KeyAscii, Text1, Text1.Text, True, True) End Sub Public Function VNUM(intAscii As Integer, ctrControl As Control, strText As String, _ Optional bSign As Boolean = False, _ Optional bPoint As Boolean = False) As Integer ' Ввод символа по умолчанию VNUM = intAscii Select Case intAscii Case 8: ' Клавиша Backspace Case 45: If (Not bSign) Or (ctrControl.SelStart > 0) Or (InStr(strText, "-")) Or (InStr(strText, "+")) Then VNUM = 0 Case 44, 46: If (Not bPoint) Or (InStr(strText, ".")) Or (InStr(strText, ",")) Then VNUM = 0 Case 48 To 57: ' Цифры от 0 до 9 Case Else: VNUM = 0 ' Все остальное End Select End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2009, 09:42 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
Поправочка KeyAscii = VNUM(KeyAscii, Text1, Text1.Text, False , True) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2009, 09:43 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
WitC, Zachem vam kod oshibki Type Mismatch? Eto zhe ne redkost' kakya-to. A prichina v tom, chto kod ne podderzhivaet bukvennyj vvod. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 06:11 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
Metla, Ваш код позволяет вводить знак "-", число 10 и вообще копировать из буфера что угодно. Короче, Ваш код тоже не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 06:21 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
ОК, число 10, оказывается разрешалось. Ну да все равно, код позволяет вводить мусор из буфера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 06:36 |
|
||
|
textbox
|
|||
|---|---|---|---|
|
#18+
VladConn, и так, заключение: 1. направление было показано - кому надо, модифицируйте/усовершенствуйте! 2. код работает. Даже переделанный под VS - 2008, рабоботает, и из буфера не вставляет... Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.KeyCode > 47 And e.KeyCode < 58 Or e.KeyCode = 8 Then If e.KeyCode <> 8 Then _ If CInt(TextBox1.Text & Chr(e.KeyCode)) < 1 Or _ CInt(TextBox1.Text & Chr(e.KeyCode)) > 12 Then e.SuppressKeyPress = True Else e.SuppressKeyPress = True End If End Sub 3. еще раз: значение TextBox1.Text при загрузке формы, по-умолчанию должно быть "" (пусто). 4. первоначальное задание - "работа с цифрами"..., символы мы и не вставим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 10:27 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35817980&tid=2161314]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 340ms |

| 0 / 0 |
