繁体   English   中英

如何在Visual Studio中制作类似属性窗口的表格?

[英]How to make a form like properties window in visual studio?

我有TreeView对象,当选择treeview一个node ,需要在确定的位置(该node属性)中显示form ,而当选择另一个node时,则需要更改form 当未选择任何节点时,该form消失。 Form仅包含ListView对象。 我需要类似Visual Studio中的“属性”窗口。

我现在遇到的问题是:

Form随机出现在错误的位置,我需要以另一种form在确定的位置显示它。

在每次按下鼠标事件后,出现一个新form ,但是我需要只有一个form (或旧form消失-新出现)

如果未选择任何节点,则form不会消失。

我该如何解决这个问题,或者有更好的解决方案?

我认为您正在寻找的是PropertyGrid控件。

http://msdn.microsoft.com/en-us/library/aa302326.aspx

这是一个非常深入和复杂的控件,但可以产生惊人的效果。

关于在每次鼠标按下事件后,出现一个新表单,但是我需要只有一个表单(或旧表单消失-新出现)我的解决方案:

向Form类添加一个静态变量Form frm; 将静态函数添加到Form类

//Create new form if not yet created
//Or return instance of opened form which can update by new parameters
public static Form Instance()
{
    if (Form.frm = null)
        Form.frm = new Form();
    return Form.frm;
}

然后仅通过此静态函数创建所有新表单。 如果要打开Form的其他实例,请为此静态函数创建重载函数。

当然,请记住在关闭窗体上放置静态Form.frm对象

尝试使用以下代码显示表单:

 private Form2 f2;    

private void button1_Click(object sender, EventArgs e)
{
    if (f2 == null) {
       f2 = new Form2();
       f2.FormClosed += delegate { f2 = null; };
       f2.Show();
    }
    else {
       f2.Activate();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM