Лучший способ реализовать сочетания клавиш в приложении Windows Forms?

Примечание: Неопределенная переменная

Случается, когда вы пытаетесь использовать переменную, которая ранее не была определена.

Типичным примером может быть

foreach ($items as $item) {
    // do something with item
    $counter++;
}

Если вы ранее не определяли $counter, код, указанный выше, вызывает уведомление.

Правильный способ - установить переменную перед ее использованием, даже если это просто пустая строка, например

$counter = 0;
foreach ($items as $item) {
    // do something with item
    $counter++;
}

Вопросы, относящиеся:

273
задан Peter Mortensen 7 February 2013 в 00:45
поделиться

3 ответа

Вы, вероятно, забыли устанавливать форму свойство KeyPreview к Истинному. При переопределении ProcessCmdKey () метод является универсальным решением:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
  if (keyData == (Keys.Control | Keys.F)) {
    MessageBox.Show("What the Ctrl+F?");
    return true;
  }
  return base.ProcessCmdKey(ref msg, keyData);
}
450
ответ дан Bridge 23 November 2019 в 02:12
поделиться

Лучший способ состоит в том, чтобы использовать мнемонику меню, т.е. иметь записи меню в Вашей основной форме, которой присваивают сочетание клавиш, которое Вы хотите. Тогда все остальное обрабатывается внутренне и все, что необходимо сделать, должен реализовать соответствующие меры, которые выполняются в Click обработчик событий той записи меню.

20
ответ дан Konrad Rudolph 23 November 2019 в 02:12
поделиться

Если у Вас есть меню, тогда изменяющееся ShortcutKeys, свойство эти ToolStripMenuItem должно добиться цели.

В противном случае Вы могли создать один и установить visible свойство ко лжи.

8
ответ дан Peter Mortensen 23 November 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: