mdiFrm 是mdi窗体,并添加了菜单和dockpanel;
frm1 是mdiFrm的子窗体,在mdiFrm显示时(shown)调用显示frm1,代码如下:
frm1 = new Form1();
frm1 .MdiParent = this;
frm1 .Show(this.dockPanel);
frm1 .Show(this.dockPanel, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft);
在frm的load事件中加载treeview的节点,并设置treeView1.Nodes[0].ExpandAll();也就是把节点1的所以子节点都展开,但是这样并不能实现所预想的treeview的展开效果。确认过treeView1.Nodes[0].ExpandAll();在一般的form中能正常的展开treeview的节点!
请问,该怎么解决?在使用dockpanel的同时,使得frm1在load的时候把treeview的节点展开!
frm1 是mdiFrm的子窗体,在mdiFrm显示时(shown)调用显示frm1,代码如下:
frm1 = new Form1();
frm1 .MdiParent = this;
frm1 .Show(this.dockPanel);
frm1 .Show(this.dockPanel, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft);
在frm的load事件中加载treeview的节点,并设置treeView1.Nodes[0].ExpandAll();也就是把节点1的所以子节点都展开,但是这样并不能实现所预想的treeview的展开效果。确认过treeView1.Nodes[0].ExpandAll();在一般的form中能正常的展开treeview的节点!
请问,该怎么解决?在使用dockpanel的同时,使得frm1在load的时候把treeview的节点展开!
谢谢了!
另外,frm1 .MdiParent = this; 这句不必写。
但是这个是在mdi的dockpanel中一个frm,不知道为什么就是不显示
放在shown中也不行,把加载和展开都放在shown中,就连加载子节点的方法也不执行,只加treeView1.Nodes[0].ExpandAll(); 在shown中也没有展开的效果!to:cja03
frm1 .MdiParent = this;
这句对于我来说是有用的,因为frm1是mdifrm的mdiChilden,要不然就会影响重复的判断
frm1是mdiFrm的子窗体,以dockpanel的left格式来显示的,在一般form中能实现treeview节点展开的代码,在frm1中就不行了。
好像是因为frm1是以mdifrm的dockpanel格式显示的原因,但不知怎样解决!且这种只是猜测...
大家继续支持啊!
2.加载TreeView的节点数据的操作在frm1的构造函数中执行,如果你的TreeView不是设计时添加的确认是否添加到了父级控件的Controls集合中。
3.然后在frm1的Load或Shown事件中调用treeView1.Nodes[0].ExpandAll();方法。如果按上面的方法还是解决不了,那估计是你的代码其他地方有问题,跟DockPanel没有关系。
如果你的TreeView不是设计时添加的确认是否添加到了父级控件的Controls集合中。
这个不是太明白能不能详细解释下,谢谢了!新手不是太懂!
TreeView tv = new TreeView();form1.Controls.Add(tv);
这样加可行?this.Controls.Add(treeView1); treeview1是treeview的Name
我的这个treeview放在splitpanel上的,改过这个后就不显示了。
修改成下面,
splitpanel.Panel1.Controls.Add(treeview1);这样TreeView就会在Panel1里面显示。
把加载的和展开的方法放在frm1 .Show(this.dockPanel, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft); 后调用就可以了!
谢谢了!散分结贴!