Страница: 1 | 2 | 3 |
Вопрос: TextBox Locked
Добавлено: 17.09.04 21:25
Автор вопроса: Lister | ICQ: 298621256
Наверное всем известно, что в блокированный текстбокс можно вставить текст - используя меню или Ctrl+Ins
Как избежать этого?
Ответы
Всего ответов: 44
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 17.09.04 21:57
Я думаю что так:
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 45 And Shift = vbShiftMask Then KeyCode = 0&: Shift = 0&
End Sub
Номер ответа: 2
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #2
Добавлено: 17.09.04 22:06
Нет, к сожалению... Не получается...
Я не думаю, что все так просто. Наверное, без хука не обойтись
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 17.09.04 22:45
Может просто следить, если что-то поменялось вернуть назад?
Номер ответа: 4
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #4
Добавлено: 17.09.04 22:51
То есть придется использовать таймер? Очень не хочется
Номер ответа: 5
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #5
Добавлено: 17.09.04 23:00
Хм, ну, наверное, в событии Text1_Change надо изменять значение на предыдущее.
Dim St As String
Sub Text1_Change
if IsLocked then
Text1[.Text]=St
Else
St=Text1[.Text]
end if
End Sub
Номер ответа: 6
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #6
Добавлено: 17.09.04 23:13
Ага... Вот это уже подходит...
Private sStr As String
Private Sub Text1_Change()
If sStr = "" Then sStr = Text1
If Text1.Locked = True Then Text1 = sStr
End Sub
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 18.09.04 00:02
Как это не все так просто, если у меня прекрасно рабоатет...
Это для комбинации Shift+Ins, разуемеется что для Ctl+C нужно чуток это доделать!
Номер ответа: 8
Автор ответа:
Grayich
ICQ: 208280504
Вопросов: 56
Ответов: 164
Web-сайт:
Профиль | | #8
Добавлено: 18.09.04 05:43
ничего непонял, а text1.enable=false неподходит разве, у меня ничего в таком режиме не вставляет. Или про какую блокировку речь ?
Номер ответа: 9
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #9
Добавлено: 18.09.04 05:54
А разве выше непонятно написано?
text1.Locked
Locked в отличии от Enabled позволяет скопировать текст и вроде как
даже прокрутить (точно не помню)
Номер ответа: 10
Автор ответа:
Grayich
ICQ: 208280504
Вопросов: 56
Ответов: 164
Web-сайт:
Профиль | | #10
Добавлено: 18.09.04 06:05
ааааа, сорри прогнал.
А почему бы просто не обновлять время от времени текстбокс. или сверять с копией текстбокса в переменной какой нить время от времени, и если что то изменилось то записать в текстбокс старое значение.
Номер ответа: 11
Автор ответа:
Grayich
ICQ: 208280504
Вопросов: 56
Ответов: 164
Web-сайт:
Профиль | | #11
Добавлено: 18.09.04 06:14
Хотя тут еще 1 мысля проскочила, воспользоваться подобным кодом
' root (True) разрешение на запись
Dim root As Boolean
root=False
'
Private Sub Write
root=True
text1.text="бла бла бла"
root=False
End Sub
'
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim sTemplate As String
if root=False then KeyAscii = 0
End Sub
Возможны очепятки, но смысл я надеюсь понятен.
Номер ответа: 12
Автор ответа:
Grayich
ICQ: 208280504
Вопросов: 56
Ответов: 164
Web-сайт:
Профиль | | #12
Добавлено: 18.09.04 06:20
Не фигню я сморозил какуюто
Номер ответа: 13
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #13
Добавлено: 18.09.04 06:25
Если бы было все так просто, я бы и не спрашивал
все что ты написал в VB реализуется одним свойством Locked
И зачем же велосипед изобретать.
К тому же, поставленную задачу это не решает
Номер ответа: 14
Автор ответа:
Grayich
ICQ: 208280504
Вопросов: 56
Ответов: 164
Web-сайт:
Профиль | | #14
Добавлено: 18.09.04 06:49
Я конечно неспал много но покопаюсь, дето такое встречал , найти нужно только, а вот с эти какраз проблеммы :/
А какая задача преследуется этим ? может проще вообще по другому сделать незацикливаясь на этом ?
Номер ответа: 15
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #15
Добавлено: 18.09.04 07:01
Задача очень простая - не допустить попадания в залоченное поле лишних
символов - как через системное меню, так и с помощью клавиатуры. и не
применять при этом таймер