正如我所见,contextmenu只有Show()
。但不是ShowModal()
。
我需要确保用户点击菜单中的任何项目。用户必须点击其中任何一个。
我可以使用cancel属性查看Closing事件。但即使我将cancel设置为true - winforms允许选择另一个treeview的节点(树节点的contextmenu)。
那么如何完全制作上下文菜单模式?
现在我必须这样写
void contextMenuTreeView_Closed(object sender, ToolStripDropDownClosedEventArgs e)
{
if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
return;
if (treeView.SelectedNode != null && treeView.SelectedNode.Tag != null)
{
if (ChangeCustomerEventHandler != null)
ChangeCustomerEventHandler(this, new CustomerTreeNodeEventArgs((Guid)treeView.SelectedNode.Tag));
}
else
{
if (NewCustomerEventHandler != null)
NewCustomerEventHandler(this, EventArgs.Empty);
}
}
答案 0 :(得分:0)
您无法以模式方式显示标准菜单。这不是菜单的工作方式。
如果需要模态选择,则显示模态对话框。例如,将可能的选项放在一个广播组中,并且只允许在用户做出满足您的选择时关闭模式对话框。