通过 Button 禁用鼠标捕获

Disable mouse capturing by Button

我创建自定义 ContextMenuStrip,其中包含 Button

ContextMenuStrip _contextMenu = new ContextMenuStrip();
_contextMenu.Items.Add(new ToolStripMenuItem("Item"));
_contextMenu.Items.Add(new ToolStripControlHost(new Button()));

当我打开此上下文菜单并将鼠标移到 'Item' 上时,它会突出显示。但是在我单击 Button 然后再次将鼠标移到 'Item' 上之后,它不再突出显示。看起来 Button 捕获了鼠标。我怎样才能避免这种情况或在 Button 单击后释放捕获?

您可以创建自己的按钮 class 继承自 Button 并将 ControlStyles.Selectable 设置为 false,这将防止它获得焦点:

public class MyButton : Button
{
    public MyButton()
    {
        SetStyle(ControlStyles.Selectable, false);
    }
}

然后用它代替 Button:

_contextMenu.Items.Add(new ToolStripControlHost(new MyButton()));