Я смог реализовать это, унаследовав от кнопки и переопределив WndProc
, как предложил ho1 и Рид.Вот унаследованная кнопка:
public class RButton : Button
{
public delegate void MouseDoubleRightClick(object sender, MouseEventArgs e);
public event MouseDoubleRightClick DoubleRightClick;
protected override void WndProc(ref Message m)
{
const Int32 WM_RBUTTONDBLCLK = 0x0206;
if (m.Msg == WM_RBUTTONDBLCLK)
DoubleRightClick(this, null);
base.WndProc(ref m);
}
}
Я программно добавил кнопку в форму и подписался на ее новое событие DoubleRightClick.Я не уверен, как именно сгенерировать соответствующий MouseEventArgs
, но так как это всего лишь тестовый пример, это не важно.