我想製作一個按鍵,與鼠標一樣使用鍵盤。我採取這種方式:用Windows窗體中的鍵盤模擬點擊
class FunctionButton : System.Windows.Forms.Button
{
public FunctionButton() : base() { }
protected override void OnGotFocus(EventArgs e)
{
OnMouseEnter(null);
base.OnGotFocus(e);
}
protected override void OnLostFocus(EventArgs e)
{
OnMouseLeave(null);
base.OnLostFocus(e);
}
protected override void OnMouseLeave(EventArgs e)
{
if (!Focused)
{
base.OnMouseLeave(e);
}
}
public void FunctionKeyPressed()
{
OnMouseDown(new MouseEventArgs(MouseButtons.Left,1,0,0,0));
PerformClick();
}
public void FunctionKeyReleased()
{
if (Focused)
{
OnMouseEnter(null);
}
else
{
base.OnMouseLeave(null);
}
}
}
我不知道如何獲得有效的點擊位置此按鈕可產生解事件
OnMouseDown(new MouseEventArgs(MouseButtons.Left,1,X,Y,0));
我怎樣才能做到這一點?實現這種按鈕的更好方法是什麼?
Highlt與此問題相關 http://stackoverflow.com/questions/1299157/simulate-flat-button-mouse-mousedown-and-mouseover – yeyeyerman 2009-08-20 14:12:21