2016-04-25 2 views
-1

Я пытаюсь связать кнопку клавиатуры (желательно «ESC»), чтобы остановить код, запущенный внутри метода. Но дело в том, что оно работает только с фактическими кнопками, так или иначе, чтобы обойти это, чтобы оно срабатывало при нажатии на этикетки?Как связать клавиатуру с меткой

 private void label1_Click(object sender, EventArgs e) 
     { 

      if (e.Control && e.KeyCode.ToString() == "ESC") 
      { 
       MessageBox.Show("This does now work"); 
      } 
} 

Error

Я где-то читал, что возможно его только что Visual Studio Gui оленья кожа обеспечить это, но вы можете сделать это с кодом каким-то образом, это правда?

+0

Вы пытались сделать ярлык сфокусированным? –

+1

это неправильный обработчик событий. попробуйте обработчик события keydown. –

+0

Я думаю, что проблема заключается в том, что метка не фокусируется, поэтому keydown can not подходит к ней ... но если это не так, то основное внимание уделяется другому элементу, так что вы проверили, какой элемент управления сфокусирован? –

ответ

0

Я не уверен, что вы пытаетесь сделать. После нажатия клавиши Escape появится клавиша Escape, когда фокус находится в форме, независимо от того, какой контроль имеет фокус. Просто добавьте это в форму (код, конечно).

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == (Keys.Escape)) 
    { 
     MessageBox.Show("This works"); 
     return true; 
    } 
    return base.ProcessCmdKey(ref msg, keyData); 
} 
+0

Im пытается заставить программное обеспечение остановить запуск кода, позволяет им запускать программное обеспечение и набирать что-то, что я хочу, чтобы нажать ESC и заставить его перестать печатать. –

+0

Я представил образец кода, который решает проблему, которая соответствует предоставленному вами коду. Вы не указали дополнительную информацию о своем заявлении, указав, что еще нужно сделать. – user34660