Я хочу сделать кнопку, которая действует с клавиатурой так же, как с помощью мыши. Я реализую это следующим образом:Имитация щелчка с помощью клавиатуры в Windows Forms
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