|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
Как запретить копирование текста из RichtextBox в буфер обмена?29.11.2010, 11:44. Показов 6159. Ответов 40
Метки нет (Все метки)
Задача такая: выводить текст на форму так, чтобы его можно было только читать. Пробовал использовать Label, но без полос прокрутки текста получилось очень убого
![]() Спасибо, если кто подскажет.
0
|
|
| 29.11.2010, 11:44 | |
|
Ответы с готовыми решениями:
40
Копирование текста в буфер обмена Копирование текста в буфер обмена Копирование текста в буфер обмена |
|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
| 29.11.2010, 11:55 [ТС] | |
|
Извините, сам нашел ответ: поставить Enabled = False
Всем спасибо
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
| 29.11.2010, 11:58 [ТС] | |
|
А! Нет, не получается: если текст большой, то скроллинг не работает.... а как же сделать тогда?
0
|
|
|
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
|
|
| 29.11.2010, 12:17 | |
|
AutoVerbMenu=False, Locked=True
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
| 29.11.2010, 12:26 [ТС] | |
|
RE:'AutoVerbMenu=False, Locked=True'
не-а, не работает... то есть правый клик мышкой заблокирован, но можно выделить текст и все скопировать Ctrl+C
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
| 29.11.2010, 13:54 [ТС] | |
|
Хотя, если отслеживать нажатие Ctrl+C, то можно использовать метод Clipboard.Clear, который очистит буфер обмена.
Тогда лишь одна проблема - как отслеживать нажатие Ctrl+C?
0
|
|
|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
||||||
| 29.11.2010, 14:30 [ТС] | ||||||
|
Итак, полное решение:
AutoVerbMenu=False, Locked=True - блокирует вызов контекстного меню в модуль формы пишем:
Всем спасибо.
0
|
||||||
|
Messir
|
|
| 30.11.2010, 00:37 | |
|
Скопируешь при желании...
|
|
|
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
|
|
| 30.11.2010, 09:53 | |
|
Еще учти сочетание Shift+Ins оно тоже что Ctrl+C, его тоже заблокируй.
0
|
|
|
Messir
|
|
| 30.11.2010, 13:42 | |
|
А еще сообщения никто не отменял...
|
|
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
| 30.11.2010, 18:23 | |
|
не Shift+Ins, а Ctrl+Ins
0
|
|
|
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
|
|
| 05.12.2010, 23:20 | |
|
Если мне память не изменяет Ctrl+C не догма.
Пользователь может настроить функцию копирования на другое сочетание...
0
|
|
|
render
|
|
| 06.12.2010, 09:42 | |
|
User'у никто не помешает изменить сочетание клавиш для копирования в буфер обмена поэтому я бы решал проблему так:
1. При открытии формы - создавать тред. 2. В треде выпонять проверку: if ClipBoard.GetFormat(vbCFText)=True then if ClipBoard.GetText() = txtRichEdit.Text then ClipBoard.Clear end if |
|
|
Messir
|
|
| 06.12.2010, 09:46 | |
|
А я бы - сабклассингом...
|
|
|
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 93
|
|
| 06.12.2010, 10:01 [ТС] | |
|
А можно пояснить, что такое 'тред'?
0
|
|
|
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
|
|
| 06.12.2010, 11:31 | |
|
1 - сабклассингом:
от контекстного меню спасает сразу: блокируем обработку WM_COPY по принципу http://relib.com/forums/topic.asp?id=837670, так как меню просто посылает RichTextBox'у это сообщение. Спасает также от SendMessge. Но Ctrl+Ins этот метод не блокирует, т.к. в этом случае WM_COPY не посылается. Здесь можно обрабатывать и сообщения клавиатулы, но как уже отмечалось, они могут быть разные. Надо хотя бы узнать в run-time текущие настройки и подавлять именно текущие сочетания. 2 - с помощью 'трейда': приведенный пример имеет один недостаток - можно копировать текст по частям и тут никакие сравнения с содержимым RichTextBox не помогут. Как вариант можно очищать Clipboard независимо от содержимого (ну, если текст). А вообще, и трейд-то наверное не нужен. Можно просто Timer. Однако, лично мое мнение, тупое ClipBoard.Clear - противоречит духу программирования в многозадачное среде, хотя если очень нужно, то... С уважением.
0
|
|
|
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
|
|
| 06.12.2010, 11:42 | |
|
Небольшое дополнение к методу с 'сабклассингом'. Раз мы должны
защищать наш RichTextBox от копирования, полагаю и вводить туда с клавиатуры ничего не нужно, т.е. RichTextBox используется для отображения текста. Если так, то наверное можно блокровать не Ctrl+Ins, А ВСЕ СООБЩЕНИЯ ОТ КЛАВИАТУРЫ !!! Уж это-то наверно сработает.
0
|
|
|
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
|
|
| 06.12.2010, 11:49 | |
|
Ну насчет ВСЕ СООБЩЕНИЯ ОТ КЛАВИАТУРЫ я немножко погорячился. Надо оставить хотябы клавиши навигации (минимум).
А есть еще один метод: не давать выделять текст, тогда и копировать нечего будет.
0
|
|
|
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
|
|
| 06.12.2010, 12:08 | |
|
Вопрос Messir'у:
Судя по Вашему игривому настроению Вы имеете ввиду что-то типа GetWindowText, который, как я понимаю мимо наших ловушек проскочит. Можно ли этому воспрепятствовать?
0
|
|
|
Messir
|
|
| 06.12.2010, 12:13 | |
|
Можно, точно так же, как можно и обойти это припятствие при известном желании... Например, можно перехватить также WM_GETTEXT и ему подобные, специфические для RTB вызовы. Еще неплохо бы определять, от кого пришло сообщение и фильтровать сообщения извне (но это сложнее...)
|
|
| 06.12.2010, 12:13 | |
|
Помогаю со студенческими работами здесь
20
Копирование текста в буфер обмена Копирование текста в буфер обмена в Windows XP Копирование\вставка текста в\из буфер обмена DOS??? (На Ассемблере) Автоматическое копирование текста в буфер обмена, или другое место Копирование строк текста в буфер обмена с последующим смещением на строку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|