3

我想使用 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;
        }
    }            
}
4

3 回答 3

21

为什么不简单地使用Form.ShowDialog

来自MSDN

Form.ShowDialog 方法

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

于 2012-05-30T18:15:11.427 回答
1

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

于 2012-05-30T18:25:10.190 回答
0

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

于 2012-05-30T18:57:13.920 回答