我有TreeView
个对象,当选择node
treeview
时,我需要form
显示在明确的位置(node
的属性) ,当选择另一个node
时,form
会发生变化。如果未选择任何节点,form
将消失。 Form
仅包含ListView
个对象。我需要像visual studio中的属性窗口。
我现在遇到的问题:
Form
随机出现,位置错误,我需要将其显示在另一个form
的确定位置。
每次鼠标按下事件后,都会显示一个新的form
,但我需要只有一个form
(或旧的消失 - 新的显示)
如果未选择任何节点,form
不会消失。
如何解决这个问题,或者有更好的解决方案?
答案 0 :(得分:5)
我认为您正在寻找的是PropertyGrid控件。
http://msdn.microsoft.com/en-us/library/aa302326.aspx
这是一个非常深刻和复杂的控制,但可以给出惊人的结果。
答案 1 :(得分:0)
关于 每次鼠标按下事件后,会出现一个新表单,但我需要有 只有一种形式(或旧的消失 - 新出现) 我的解决方案:
向Form类添加一个静态变量Form frm; 向表类添加静态函数
//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对象
答案 2 :(得分:0)
尝试使用以下代码展示您的表单:
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();
}
}