winForm控件容器中控件的获取

SeaHome81 2015-09-22 09:42:07
这段时间在试着做海康sdk的二次开发,现在有两个form(mainform,addform),mainform上有个treeview控件,此控件放在groupbox控件里。现在我要通过点击addform上的button,完成对mainform上treeview的操作。

我通过mainform中button点击事件来显示addform:
addform frm = new addform(this);//将mainform传递给addform
frm.ShowDialog();

在addform重载构造函数:
public addform(mainform mainfrm)
{ mainf = mainfrm; }//mainf已定义

然后在addform里的button点击事件中:
treeview tv_dvr = (treeview) mainf.controls["tv_dvr"];
tv_dvr.nodes[0].nodes.add("test");

现在问题出在 (treeview) mainf.controls["tv_dvr"]获取不到mainform上的name为"tv_dvr"的treeview,这个mainf已经获取到了,就是mainform,是不是因为这个treeview在groupbox里,所以要写成:
treeview tv_dvr = (treeview) mainf.controls["groupbox_tv"].controls["tv_dvr"];//groupbox_tv为存放treeview控件的groupbox的name
这样才能获取到?

望各位大侠赐教!谢谢!
...全文
271 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeaHome81 2015-09-24
  • 打赏
  • 举报
回复
感谢各位帮忙!
为轮子而生 2015-09-23
  • 打赏
  • 举报
回复
首先你的猜测是正确的,只能从它的每层父级依次检索,这个顺序没有捷径。 但检索的效率是非常低的,每次你调用这个TreeView都要这样检索并转换的话,是非常不负责任的。 通常可以用这几种方法进行优化: 1.将这个TreeView设置为public,从而使它可以在别的类中直接访问 2.可以继续使用检索,但这个检索最好由mainform自己来做,且检索完成后就记住它,避免这样的开销重复发生
失落的神庙 2015-09-23
  • 打赏
  • 举报
回复
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
//获取右键点击
            if (e.Button == MouseButtons.Right)
            {               
                e.Node.BeginEdit();               
            }
             
        }
        
        private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
             
          //这里写你想更新到数据库的内容和相关的方法
            //发回数据到数据库
        }
这样不行么。 直接编辑。 都不用弹窗。
devmiao 2015-09-22
  • 打赏
  • 举报
回复
this.容器.controls["xxx"]
健者天行 2015-09-22
  • 打赏
  • 举报
回复
这么麻烦, 你直接把 mainform的 treeview控件设置为 public 就可以啦。
crystal_lz 2015-09-22
  • 打赏
  • 举报
回复
不知道你窗体的布局 谁会知道 你的控件在那里 假设 你 Form1 里面有一个 pannel 而 里面放着一个button 你以为 那个 button 是在 Form1.Controls["button1"] 里面? 其实 他是在 Form1.Controls["pannel1"].Controls["button1"]...

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧