[英]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.