Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Help!!! plz Добавлено: 08.04.06 17:54  

Автор вопроса:  john
Превествую всех, кто читает это сообщение!
прошу совета:
как в word'е в textbox'e запретить набор букв(разрешить только ввод цифр)???
буду очень благодарен за помощь)

Ответить

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

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



ICQ: 254226129 

Вопросов: 30
Ответов: 107
 Профиль | | #1 Добавлено: 08.04.06 18:40
Так в ворде или в текстбоксе?

Ответить

Номер ответа: 2
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #2
Добавлено: 08.04.06 19:07
Тема разжована, до не могу.
Поиск по форуму.

Для примера.
Вот так можно разрешить ввод только латинских строчных букв.
Меняй на коды цифр и все гуд

Option Explicit

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii > 122 Or KeyAscii < 97 Then KeyAscii = 0
End Sub


Ответить

Номер ответа: 3
Автор ответа:
 john



Вопросов: 1
Ответов: 8
 Профиль | | #3 Добавлено: 08.04.06 19:54
я имею ввиду элемент управления word'а - ПОЛЕ(textbox).
не получается... точнее я не знаю где это вводить.
если кликнуть 2 раза на поле появляется visual basic и там написано:
Private Sub TextBox3_Change()

End Sub
я пытался вставить в скобки KeyAscii As Integer..и все остальное ниже. а он выдает ошибку..
что делать?

Ответить

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



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #4 Добавлено: 08.04.06 20:03
Можно в той же Text1_KeyPress(KeyAscii As Integer) процедуре через
Select Case KeyAscii
Case 48 to 57
' Цифры
Case 65 to 90
'строчные латинские
Case 97 to 122
'прописные латинские
case 45
'дефис
case 95
'_
case else
keyascii=0
end select

Ну ты понял идею. (в case можно через запятую и диапазоны перечислить все допустимые для тебя символы и группы и больше ничего, а case'ом else отсеивать всё, не перечисленное в case)

Ответить

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



Вопросов: 1
Ответов: 8
 Профиль | | #5 Добавлено: 08.04.06 20:05
проблема в том, что у меня нет никакого text1_keypress!!!
там Private Sub TextBox3_Change()!!!

Ответить

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



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #6 Добавлено: 08.04.06 20:06
Ты не просто подставляй кейаски, ты процедуру переименуй!
Private Sub TextBox3_KeyPress(KeyAscii As Integer)

Ответить

Номер ответа: 7
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #7 Добавлено: 08.04.06 20:07
если кликнуть 2 раза на поле появляется visual basic и там написано:
Private Sub TextBox3_Change()

End Sub
Как и в обычном vb6 меняй событие на KeyPress и вводи код.

Ответить

Номер ответа: 8
Автор ответа:
 john



Вопросов: 1
Ответов: 8
 Профиль | | #8 Добавлено: 08.04.06 20:11
все сделал как сказали..
при попытки ввода в тот самый текстбокс появляется сообщение об ошибке:
compile error:
procedure declaration does not match description of event or procedure having the same name

Ответить

Номер ответа: 9
Автор ответа:
 Nj



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #9 Добавлено: 08.04.06 20:41
В Бэйсике работает...
У Ворда спецефическое в этой процедуре. Специально для тебя залез в ворд у себя и посмотрел

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

End Sub

Там есть такое окошечко со списком событий, как в Бэйсике, в верхнем правом углу над рабочем полем.

Не гарантирую работаспособность - смотри сам.

Ответить

Номер ответа: 10
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #10 Добавлено: 08.04.06 20:49
все работает, выкаеш на форму текстбокс,
переходиш в код (правая кнопка в древе с права на значке формы, строчка код) и втыкаеш вот это:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii > 57 Or KeyAscii < 48 Then KeyAscii = 0
End Sub

скажи буковкам пока, тока учти бэкспэйсом ты не сможеш воспользоваться, он по названию (бэк + спейс) означает что он символ, можеш сделать доболнительный обработчик на него, код у него "8"
тоесть будет примерно так:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57
Case 8
Case Else
KeyAscii = 0
End Select
End Sub


или так:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii > 57 Or KeyAscii < 48 Xor KeyAscii = 8 Then KeyAscii = 0
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #11 Добавлено: 08.04.06 20:58
зы.
у меня на этом терминале ворда нет, так что поверим кодом Nj:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii > 57 Or KeyAscii < 48 Xor KeyAscii = 8 Then KeyAscii = 0
End Sub

должен работать.

Ответить

Номер ответа: 12
Автор ответа:
 john



Вопросов: 1
Ответов: 8
 Профиль | | #12 Добавлено: 08.04.06 21:18
всем спасибо! работает!!! очень благодарен..
а можно еще вопрос? )))
как предусмотреть появление текстовой справки при нажатии клавиши F1 в этом поле(textbox)??

Ответить

Номер ответа: 13
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #13 Добавлено: 08.04.06 21:41
тебе надо будет добавить в комбо с права вверху в окне редактирования кода событие KeyDown, если с начала у тебя видно KeyPress или Click, то туда и кликай, там найдеш


Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then Shell "notepad.exe" & " C:\boot.ini", vbMaximizedFocus
End Sub


вставиш этот код, естественно все от сюда копироватт не надо, в ворде создаш как я написал выше и скопируеш от сюда:


If KeyCode = vbKeyF1 Then Shell "notepad.exe" & " C:\boot.ini", vbMaximizedFocus


вот тебе и будет запуск "Хэлпа", можеш весь бред после Then заменить на бред msgbox "тут хелп",0,"ХЕЛП ПРИШЕЛ!!!"

Ответить

Номер ответа: 14
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #14
Добавлено: 09.04.06 08:13
разжевали заново

Ответить

Номер ответа: 15
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #15 Добавлено: 09.04.06 08:57
помоему ещё и врот положили (то что расжевали)
к теме, у кого нить есть линк на ASCII таблицу для доса? была у меня в учебнике но учебник забыл в Рпоссии...

Ответить

Страница: 1 | 2 |

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



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