Случается, когда вы пытаетесь использовать переменную, которая ранее не была определена.
Типичным примером может быть
foreach ($items as $item) {
// do something with item
$counter++;
}
Если вы ранее не определяли $counter
, код, указанный выше, вызывает уведомление.
Правильный способ - установить переменную перед ее использованием, даже если это просто пустая строка, например
$counter = 0;
foreach ($items as $item) {
// do something with item
$counter++;
}
Вопросы, относящиеся:
Вы, вероятно, забыли устанавливать форму свойство 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);
}
Лучший способ состоит в том, чтобы использовать мнемонику меню, т.е. иметь записи меню в Вашей основной форме, которой присваивают сочетание клавиш, которое Вы хотите. Тогда все остальное обрабатывается внутренне и все, что необходимо сделать, должен реализовать соответствующие меры, которые выполняются в Click
обработчик событий той записи меню.
Если у Вас есть меню, тогда изменяющееся ShortcutKeys
, свойство эти ToolStripMenuItem
должно добиться цели.
В противном случае Вы могли создать один и установить visible
свойство ко лжи.