簡體   English   中英

Windows.Form沒有激活keyDown事件

[英]Windows.Form not fire keyDown event

private void screensaverWindow_Load(object sender, System.EventArgs e)
{            
    this.BringToFront();            
    this.Focus();
    this.KeyPreview = true;
    this.KeyDown += new KeyEventHandler(onkeyDown);            
}        

永遠不會調用onKeyDown() 知道為什么嗎?

編輯 :這在發布模式下工作!? 我想它必須是視覺工作室調試器干擾某處

這是由表單上的子控件攔截事件引起的。 如果不希望這樣,則需要將父窗體的KeyPreview屬性設置為True

似乎為我工作:

public Form1()
{
    InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
    this.BringToFront();
    this.Focus();
    this.KeyPreview = true;
    this.KeyDown += new KeyEventHandler(Form1_KeyDown);
}

void Form1_KeyDown(object sender, KeyEventArgs e)
{
    Console.WriteLine("test");
}

您的表單上是否有任何子控件?

菜單怎么樣,你有定義快捷鍵的菜單嗎? 我有一個問題,隱藏的上下文菜單實際上是吞下cetain鍵而不是將它們傳遞給任何表單鍵事件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM