Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 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-сайт: hw.t-k.ru
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #7
Добавлено: 18.09.04 00:02
Как это не все так просто, если у меня прекрасно рабоатет...

Это для комбинации Shift+Ins, разуемеется что для Ctl+C нужно чуток это доделать!

Ответить

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



ICQ: 208280504 

Вопросов: 56
Ответов: 164
 Web-сайт: grayich.narod.ru
 Профиль | | #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-сайт: grayich.narod.ru
 Профиль | | #10
Добавлено: 18.09.04 06:05
ааааа, сорри прогнал.
А почему бы просто не обновлять время от времени текстбокс. или сверять с копией текстбокса в переменной какой нить время от времени, и если что то изменилось то записать в текстбокс старое значение.

Ответить

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



ICQ: 208280504 

Вопросов: 56
Ответов: 164
 Web-сайт: grayich.narod.ru
 Профиль | | #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-сайт: grayich.narod.ru
 Профиль | | #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-сайт: grayich.narod.ru
 Профиль | | #14
Добавлено: 18.09.04 06:49
Я конечно неспал много :) но покопаюсь, дето такое встречал , найти нужно только, а вот с эти какраз проблеммы :/

А какая задача преследуется этим ? может проще вообще по другому сделать незацикливаясь на этом ?

Ответить

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



ICQ: 298621256 

Вопросов: 57
Ответов: 304
 Профиль | | #15 Добавлено: 18.09.04 07:01
Задача очень простая - не допустить попадания в залоченное поле лишних
символов - как через системное меню, так и с помощью клавиатуры. и не
применять при этом таймер


Ответить

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

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



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