我有一个工具条,其中包含一个 ToolStripComboBox 和一个 ToolStripButton。我想向它们添加一个 ContextMenuStrip,但我无法直接访问工具条或其其他内容,因此无法设置工具条的上下文菜单。
为 ToolStripComboBox 设置 ContextMenuStrip 很简单:
myToolStripComboBox.ComboBox.ContextMenuStrip = myContextMenu;
但是 ToolStripButton 没有明显的等效项。如何将 ContextMenuStrip 添加到 ToolStripButton?
最佳答案
杰夫·耶茨的建议应该可行。
但是,另一种选择是创建您自己的派生类(MyToolSTripButton、MyToolStripTextBox ...等),为这些项目提供一个您可以在设计时设置的 ContextMenuStrip 属性,并让您的派生类检测鼠标右键按下,或者其他什么其他事件将触发上下文菜单的显示。
这会减轻仅那些感兴趣的项目所需的任何知识。
下面是一个使用 ToolStripTextBox 作为项目的示例。
public class MyTextBox : ToolStripTextBox
{
ContextMenuStrip _contextMenuStrip;
public ContextMenuStrip ContextMenuStrip
{
get { return _contextMenuStrip; }
set { _contextMenuStrip = value; }
}
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (_contextMenuStrip !=null)
_contextMenuStrip.Show(Parent.PointToScreen(e.Location));
}
}
}
关于c# - 如何将 ContextMenuStrip 添加到 ToolStripButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283417/