|
0 / 0 / 0
Регистрация: 22.06.2007
Сообщений: 176
|
|
Как задизаблить ЭдитБоксы?22.06.2007, 12:30. Показов 1491. Ответов 15
Метки нет (Все метки)
Enabled = False - это и я знаю!!
А как сделать так, чтобы в контролы ничего ввести нельзя было, а вот выделить и скопировать из них можно было. Locked = true? Но тут другая проблема никакие клавиши воще не работают. А как это еще можно сделать? Кроме как перехватыванием KeyPress OnChange и т.п. это не подходит - контролов слишком много. И они не в массиве!!! Подскажите плз ... Очень надо.
0
|
|
| 22.06.2007, 12:30 | |
|
Ответы с готовыми решениями:
15
Как задизаблить Х в строке заголовка
Задизаблить инбокс скриптом? |
|
VladK
|
|
| 22.06.2007, 15:40 | |
|
Указанный код позволяет использовать Cntrl^C для копирования содержимого всех текстовых окон на форме в Clipboard.
Все текстовые окна имеют Locked = False, Enabled = True и в тоже время не редактируемы. Я не проверял все клавиши. Если какие-то и пробивают, то их коды надо просто добавить в оператор If. Option Explicit Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyDelete Then KeyCode = vbKeyEscape End If End Sub Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii <> 3 Then KeyAscii = 0 End If End Sub Private Sub Form_Load() Me.KeyPreview = True End Sub |
|
|
0 / 0 / 0
Регистрация: 22.06.2007
Сообщений: 176
|
|
| 24.06.2007, 19:18 [ТС] | |
|
Да .... Как я сразу не догадался ...
Но тут есть другая проблема ! По POPUP меню можно в (так называемый) Реад онли контрол вставить всякую дребедень ![]() А можно ли еще и это как-то отключить ? Best Regards Nick
0
|
|
|
VladK
|
|
| 25.06.2007, 07:53 | |
|
Я не знаю, что такое так называемый реад онли контрол в терминах ВБ. Если можно, дайте код или укажите объект, его свойства и их значения.
|
|
|
0 / 0 / 0
Регистрация: 22.06.2007
Сообщений: 176
|
|
| 25.06.2007, 15:17 [ТС] | |
|
Блин!!!
Так называемым ReadOnly контрол становится когда я в него твой код прибавляю. А проблема вот в чем: Я прибавил к EditBox твой код - да почти все классно. Клава не работает. Но работает МЫШЬ!!! Нажимаешь правую клавишу - выскакивает POPUP меню и там опция - Paste (((А как эще и это отключить????
0
|
|
|
VladK
|
|
| 25.06.2007, 21:16 | |
|
Ya dumayu, nado vpisat' dopolnitel'ni'y kod v sobi'tie MouseUp.
U menua seychas net vremeni. Esli nikto vam do menya ne podskaghet, to ya vecherom podumayu. |
|
|
VladK
|
|
| 26.06.2007, 06:07 | |
|
Красивого решения у меня нет.
Вот мой самый простой и жестокий вариант: В событие MouseDown каждого текстового окна вставить: Clipboard.Clear. Существует и другой способ: В событие MouseUp каждого текстового окна вставить: Form1.PopupMenu mnuMyPopUp Где mnuMyPopUp это меню, определенное вами на форме, такое что: mnuMyPopUp.Visible = False. Вы сами определяете все его подменю на этапе дизайна. В вашем случае все подменю делаете как в стандартном PopupMenu, а подменю Paste вообще не создаете. Здесь есть одно 'но': все остальные подменю вы должны закодировать самостоятельно используя тотже Clipboard, SelText и так далее. Дерзайте. |
|
|
0 / 0 / 0
Регистрация: 22.06.2007
Сообщений: 176
|
|
| 26.06.2007, 12:12 [ТС] | |
)))))Продерзал! Класс!!!! один раз нажал - VB&EditBox меню - второй раз нажал - мое меню! Вопросик про отключение стандартного попап меню едитбокса остается актуальным и по сей день. К нему ответ так никто и не нашел. Ничего лучшего чем 'Пиши собственный ActiveX' я ни откого так и не услышал. В следующий раз так и поступлю - буду писать свой. Но не в том состоял МОЙ вопрос ... мне нужно было 'все и сразу', то бишь одним обработчиком на форме обработать все! А если каждому контролу присобачить обработчик, то это понятно будет работать. Так как мне всетаки надо работать - обработчики для каждого я налепил.(Каждому прибавил OnCange и организовал что-то типа Undo) Одно радует, что протрах... не зря. Но это не значит что я не хочу получить ответ.(Если таковой существует) С уважением Nick P.S. Ну NickSun ... Хотел бы я знать кто зарегистрился под Nick
0
|
|
|
Lana
|
|
| 28.06.2007, 22:49 | |
|
Try this exemple from Micrisoft:
http://support.microsoft.com/support/kb/articles/Q191/6/70.ASP?LN=EN-US&SD=gn&FR=0&qry=default%20menu&rnk=64& src=DHCS_MSPSS_gn_SRCH&SPR=VBB |
|
|
Karamba
|
|
| 28.06.2007, 23:00 | |
|
Слушай, а зачем тебе в таком случае илпользовать EditBox'ы? используй Label'ы. как я понял тебе надо тока отображать информацию?
|
|
|
Karamba
|
|
| 28.06.2007, 23:22 | |
|
сорри, пургу гнал... тебе наде еще копировать оттуда...
|
|
|
0 / 0 / 0
Регистрация: 17.03.2015
Сообщений: 1
|
|
| 01.07.2007, 20:46 | |
|
Sorry I don't have Russian fonts on this PC.
If you want to have one handler for all controls and you have VB6 use something like this: Dim WithEvents ctrlExt as VBControlExtender sub Form1_Load set ctrlExt=Form1.ActiveControl end sub sub ctrlExt_LostFocus set ctrlExt=Form1.ActiveControl end sub 'Here is handler for all controls sub ctrlExt_KeyPress KeyAscii=0 end sub I dont have VB6 here, so I can't send you exact code, but above should help. I did something like this about a year ago and it worked.
0
|
|
|
0 / 0 / 0
Регистрация: 22.06.2007
Сообщений: 176
|
|
| 11.07.2007, 22:19 [ТС] | |
|
Вот я и на работе!!!
Спасибо за ответ! Плохо конечно, господин хороший, что у Вас Басика не было, но не беда! Я тут покрутил и всетаки получил один хандл для всех .... ТекстБоксов. С VBControlExtender не выходит - ActiveControl не сетится. Да мне в принсипе это и не надо (так, чтобы для всех контролов). Но идея ГеНиАлЬнАя. За нее огромное спасиба. Вощем после небольших проб вышло вот это: Dim WithEvents ctrlExt As TextBox Private Sub ctrlExt_KeyPress(KeyAscii As Integer) KeyAscii = 0 End Sub Sub ctrlExt_LostFocus() If TypeOf Form1.ActiveControl Is TextBox Then Set ctrlExt = Form1.ActiveControl End If End Sub Private Sub Form_Resize() If TypeOf Form1.ActiveControl Is TextBox Then Set ctrlExt = Form1.ActiveControl End If End Sub Тут конечно глюк с LostFocus - ну если там не только ТекстБоксы то эта штука сбои давать будет, но ... Кстате если кто придумает как это дело красиво сделать или сделать через VBControlExtender - заранее благодарен. А если этот кто-то свою идею еще и опубликует! То вввхвала ему и памятник на каждом сайте! А на счет Микрософтовских самплов щас туда иду ... пожее отвечу и поблагодарю! С уважением и благодарностью, Nick
0
|
|
|
0 / 0 / 0
Регистрация: 22.06.2007
Сообщений: 176
|
|
| 11.07.2007, 22:54 [ТС] | |
|
А вот был я на Микрософте .....
Посмотрел, попробовал - работает. Спасиба ... Огромное Спасиба!!! Вопрос со стандартной меню ТекстБокса закрыт!
0
|
|
|
0 / 0 / 0
Регистрация: 17.03.2015
Сообщений: 1
|
|
| 11.07.2007, 23:21 | |
|
It would be nice to be able to declare variable like this:
dim WithEvents Ctrl as Control In this case all you problems with LostFocus event would be gone. BUT! **** Disclaimer, hehe. I have only VB5 and VB7 here so you have to try it in VB6 by yourself. *** In VB5 Control object doesn't have any events, so you can't declare it as WithEvents. In VB7 Control object is much better and allows you to do things like this: dim WithEvents Ctrl as Control public sub Ctrl_Leave(...) ctrl.text='Lost focus' ctrl=Form1.ActiveControl ctrl.Text='Got focus' End Sub And Control object here has all kinds of Events, Properties and Methods, so you can do whatever you want with it. So try it in VB6. If it doesn't work, at least you'll know that your life is going to be much easier when VB7 is out, because this kind of things are handled here just great.
0
|
|
|
0 / 0 / 0
Регистрация: 22.06.2007
Сообщений: 176
|
|
| 12.07.2007, 11:51 [ТС] | |
|
Я тоже думал над этим (VB7), но .... оно всегда но. Может обратно ... на пятый
)Я тоже сразу пробовал это (Control), ну нету в VB6 такой фичи. (Может конечно у меня нету, ... или у всех?) В любом случае, спасибо за ответ! Best regards, Nick
0
|
|
| 12.07.2007, 11:51 | |
|
Помогаю со студенческими работами здесь
16
задизаблить чекбоксы - checkbox.setAttribute("disabled", true); Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|