通过 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()));
我创建自定义 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()));