Ctrl+C в ListView распознается как «LButton | Shift Key».C#

Место общения программистов C#
Ответить
Anonymous
 Ctrl+C в ListView распознается как «LButton | Shift Key».

Сообщение Anonymous »

Как я могу уловить нажатие клавиш «ctrl+c» при просмотре списка?
Я пытаюсь так

Код: Выделить всё

private void listviewLogger_KeyUp(object sender, KeyEventArgs e)
{
if (sender != listviewLogger) return;

//if (e.Control && e.KeyData == (Keys.Control | Keys.C))
if (e.Control && e.KeyCode == Keys.C)
CopySelectedValuesToClipboard();
}
но он показывает мне комбинацию LButton | Клавиша Sift, когда я нажимаю ctrl+C:
Изображение

P.S.: в Windows установлены два языка, система Win2012 R2
Обновление1: спасибо за комментарий! Если я регистрирую действия, я вижу это:

e.KeyData: ControlKey

e.KeyCode: ControlKey
e.KeyData: C

e.KeyCode: C

Но все равно не могу уловить эту последовательность клавиш. Код:

Код: Выделить всё

private void listviewLogger_KeyUp(object sender, KeyEventArgs e)
{
if (sender != listviewLogger)
return;

Logger("e.KeyData: " + e.KeyData);
Logger("e.KeyCode: " + e.KeyCode);
}
Обновление 2:
Решено следующим образом. Не спрашивайте меня как :-D

Код: Выделить всё

if (((e.KeyData & Keys.ControlKey) != Keys.ControlKey) && e.KeyCode == Keys.C)
CopyLogEntriesToClipboard();
Обновление 3:
Предыдущее работало для события KeyUp. Для KeyDown работает первый фрагмент кода

Подробнее здесь: https://stackoverflow.com/questions/355 ... -shift-key
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»