Contextmenu showmodal

时间:2014-04-22 14:21:49

标签: c# winforms treeview contextmenu

正如我所见,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);
        }
    }

1 个答案:

答案 0 :(得分:0)

您无法以模式方式显示标准菜单。这不是菜单的工作方式。

如果需要模态选择,则显示模态对话框。例如,将可能的选项放在一个广播组中,并且只允许在用户做出满足您的选择时关闭模式对话框。