Страница: 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-сайт:
Профиль | | #2
Добавлено: 08.04.06 19:07
Тема разжована, до не могу.
Поиск по форуму.
Для примера.
Вот так можно разрешить ввод только латинских строчных букв.
Меняй на коды цифр и все гуд
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) процедуре через
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
Private Sub TextBox3_Change()
End Sub
Номер ответа: 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"
тоесть будет примерно так:
Select Case KeyAscii
Case 48 To 57
Case 8
Case Else
KeyAscii = 0
End Select
End Sub
или так:
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:
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-сайт:
Профиль | | #14
Добавлено: 09.04.06 08:13
разжевали заново
Номер ответа: 15
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #15
Добавлено: 09.04.06 08:57
помоему ещё и врот положили (то что расжевали)
к теме, у кого нить есть линк на ASCII таблицу для доса? была у меня в учебнике но учебник забыл в Рпоссии...