我想制作一个按键,与鼠标一样使用键盘。我采取这种方式:用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