好吧,所以我一直在研究這個控件近一個月,我遇到的其中一個問題是如果我按下CTRL鍵通過它自己註冊,如果我通過它自己註冊空格鍵。我試圖分開這兩個,我試圖在相同的if
聲明中使用它們。兩者都不成功。C#爲什麼我的控件不接受KeyDown事件中的多個鍵
我第一次嘗試這樣的
protected override void OnKeyDown(KeyEventArgs e)
{
// base.OnKeyDown(e);
if (_isEditing)
{
if (e.KeyData == Keys.Delete)
{
if (_selectedObj != null)
{
DeleteSelectedObject();
}
}
}
if (e.Control && e.KeyData == Keys.Space)
{
_isEditing = !_isEditing;
Invalidate();
}
}
現在,如果我刪除Ctrl或從它工作正常的公式計算「空間」鍵。所以,我試圖把它們分開,並使用Console.WriteLine()
作爲一個騙子當按下鍵和蜱不會被顯示,除非我註釋掉CTRL子句告訴我想出了
protected override void OnKeyDown(KeyEventArgs e)
{
// base.OnKeyDown(e);
if (_isEditing)
{
if (e.KeyData == Keys.Delete)
{
if (_selectedObj != null)
{
DeleteSelectedObject();
}
}
}
if (e.Control)
{
Console.WriteLine(DateTime.Now.ToShortTimeString());
if (e.KeyData.Equals(Keys.Space))
{
_isEditing = !_isEditing;
Console.WriteLine(DateTime.Now.Ticks.ToString());
}
Invalidate();
}
}
。我在哪裏錯了?
謝謝。快速和容易的是我一直在尋找和這工作。 –