Вопрос: TextBox Locked | Добавлено: 17.09.04 21:25 |
Автор вопроса: ![]() |
Наверное всем известно, что в блокированный текстбокс можно вставить текст - используя меню или Ctrl+Ins
Как избежать этого? |
Ответы | Всего ответов: 44 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик 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 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 298621256 Вопросов: 57 Ответов: 304 |
Профиль | Цитата | #2 | Добавлено: 17.09.04 22:06 |
Нет, к сожалению... Не получается... Я не думаю, что все так просто. Наверное, без хука не обойтись |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #3 | Добавлено: 17.09.04 22:45 |
Может просто следить, если что-то поменялось вернуть назад? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 298621256 Вопросов: 57 Ответов: 304 |
Профиль | Цитата | #4 | Добавлено: 17.09.04 22:51 |
То есть придется использовать таймер? Очень не хочется ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 18.09.04 00:02 |
Как это не все так просто, если у меня прекрасно рабоатет...
Это для комбинации Shift+Ins, разуемеется что для Ctl+C нужно чуток это доделать! |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ICQ: 208280504 Вопросов: 56 Ответов: 164 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 18.09.04 05:43 |
ничего непонял, а text1.enable=false неподходит разве, у меня ничего в таком режиме не вставляет. Или про какую блокировку речь ? |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 298621256 Вопросов: 57 Ответов: 304 |
Профиль | Цитата | #9 | Добавлено: 18.09.04 05:54 |
А разве выше непонятно написано? text1.Locked Locked в отличии от Enabled позволяет скопировать текст и вроде как даже прокрутить (точно не помню) |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ICQ: 208280504 Вопросов: 56 Ответов: 164 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 18.09.04 06:05 |
ааааа, сорри прогнал.
А почему бы просто не обновлять время от времени текстбокс. или сверять с копией текстбокса в переменной какой нить время от времени, и если что то изменилось то записать в текстбокс старое значение. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ICQ: 208280504 Вопросов: 56 Ответов: 164 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 18.09.04 06:20 |
Не фигню я сморозил какуюто ![]() |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 298621256 Вопросов: 57 Ответов: 304 |
Профиль | Цитата | #13 | Добавлено: 18.09.04 06:25 |
![]() все что ты написал в VB реализуется одним свойством Locked И зачем же велосипед изобретать. К тому же, поставленную задачу это не решает |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ICQ: 208280504 Вопросов: 56 Ответов: 164 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 18.09.04 06:49 |
Я конечно неспал много ![]() А какая задача преследуется этим ? может проще вообще по другому сделать незацикливаясь на этом ? |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 298621256 Вопросов: 57 Ответов: 304 |
Профиль | Цитата | #15 | Добавлено: 18.09.04 07:01 |
Задача очень простая - не допустить попадания в залоченное поле лишних символов - как через системное меню, так и с помощью клавиатуры. и не применять при этом таймер |
|