【问题标题】:How to create a context menu in C#如何在 C# 中创建上下文菜单
【发布时间】:2012-05-30 18:07:45
【问题描述】:

我想使用 C# 创建一个上下文菜单,该菜单将显示在节点旁边,类似于在 Visual Studio 中发生的情况:

我现在的代码导致主窗体闪烁。

private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        var myForm = new Form {Text = "My Form"};
        myForm.SetBounds(10, 10, 200, 200);

        myForm.Show();
        // Determine if the form is modal.
        if (myForm.Modal == false)
        {
            // Change borderstyle and make it not a top level window.
            myForm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
            myForm.TopLevel = false;
        }
    }            
}

【问题讨论】:

  • 你在 VS 中显示的不是模态的,它是一个上下文菜单。你在找哪个?
  • 那么可能是上下文菜单

标签: c# winforms visual-studio-2010 contextmenu


【解决方案1】:

为什么不直接使用Form.ShowDialog

来自MSDN

Form.ShowDialog 方法

将表单显示为模式对话框。

【讨论】:

  • 无法在静态上下文中访问非静态方法 ShowDailog,异常
  • @atbyrd,在您的代码 sn-p 中,您应该调用myForm.ShowDialog()。这行得通吗?
【解决方案2】:

您应该设置treeView1.ContextMenu,而不是您正在采取的方法。

【讨论】:

    【解决方案3】:

    您应该阅读并尝试ContextMenu 控制 c#。我认为它会解决您的问题,而不是您使用的技术.....或者除了使用 myform.showdialog();setbounds() 方法。

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 2022-01-03
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 2016-08-19
      • 1970-01-01
      相关资源
      最近更新 更多