Текстовое поле внутри панели .NET 1.1 KeyUp - PullRequest
0 голосов
/ 11 апреля 2011

В основном, у меня есть текстовое поле внутри панели. В платформе v1.1 сочетания клавиш, такие как ctrl + C и ctrl + V, не являются неявными для текстовых полей и должны кодироваться для события KeyUp. Итак, я создал общий класс, который наследует текстовое поле и имеет обработчик событий для копирования и вставки с помощью сочетаний клавиш. Проблема, которая у меня есть, заключается в том, что когда я нажимаю Ctrl + V внутри текстового поля на панели, он дважды копирует текст. Я думал, что это может быть потому, что на панели (прокручиваемый элемент управления) уже установлено событие KeyUp для вставки, и что сначала запускается одно, а затем то, которое я написал. Я думал, есть ли возможность переопределить событие KeyUp панели, чтобы оно не вызывало вставку? (если моя логика верна) Приветствуются любые идеи относительно того, почему происходит двойная вставка. (двойная вставка происходит только в текстовом поле внутри панели)

private void dbTextBox_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
 if (e.KeyData == (Keys.Control | Keys.C)) (sender as TextBox).Copy(); 
 if (e.KeyData == (Keys.Control | Keys.V)) (sender as TextBox).Paste(); 
}

1 Ответ

0 голосов
/ 11 апреля 2011

Вы пробовали e.Handled = true;

...