Если вы хотите запретить использование в текстовом поле элементов меню, вызываемых правой кнопкой мыши, вы можете создать собственное контекстное меню.
Затем, используя вызовы API, необходимо отсоединить меню по умолчанию от текстового поля и подключить пользовательское меню.
(Мне не известны другие API, которые позволяют отключать / скрывать элементы только в существующем контекстном меню)
Недостатком является то, что любой элемент меню, который вы хотите сохранить, например, копировать или удалять, необходимо написать для себя.
Вы можете найти очень хорошее объяснение того, как это сделать, здесь Отключить контекстное меню правой кнопкой мыши в текстовом поле и здесь Странная реакция на всплывающее меню
Что дальше, .. что будет, если пользователь использует CTRL + V для вставки? Или что, если пользователь вставил сопоставление с другими комбинациями клавиш, кроме CTRL + V?
Вместо этого проверить данные?
В итоге вы можете написать много кода, пытаясь предотвратить ввод данных. Почему бы не сохранить эту работу и позволить пользователю ввести то, что ему нравится, и использовать событие validate для проверки данных?
Я написал пример на другом сайте об использовании события проверки текстового поля здесь: Проверка значения является числовым . У этой ссылки также есть демонстрационный проект vb6, который я собрал вместе в посте.
Тип проверки не имеет значения, я полагаю, он просто демонстрирует, что использование события validate позволяет вам сосредоточиться на проверке данных, а не пытаться закодировать каждый возможный способ предотвращения ввода данных в первое место.
Событие Validate запускается перед потерянным фокусом и перед getfocus следующего элемента управления.
Только если событие validate не , переданное , отменит действие, будет выполнено событие lostfocus и любое последующее событие.
Событие Validate предназначено для использования для проверки значения элемента управления перед выполнением любого другого события.