如何在子窗体中改变母窗体的treeView的节点值

蜗牛学编程 2020-09-10 12:11:07
老师好,请教一下:
有一个winform窗体,主窗体有一个treeView,点击View1和label1分别会加载子窗体到panel1(也就是黄色区域)。
现在有没什么方法,点击button1(点击label1加载的子窗体),可以改变treeView的form1节点的字符,譬如从“form1”变为“test”
...全文
1878 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2020-09-11
  • 打赏
  • 举报
回复
建议先学学vue,看看玩js的人们怎么弄。 玩js的人会告诉,你显示模板是显示模板,数据是数据。别搁到一起说。 同样其实我们这里也一样,数据是数据,显示是显示。只是你们被带歪了,能理解这个的不多。 所以,我建议你先玩玩vue,玩上2个星期。在回头看看你现在的代码,你会发现你现在的代码多么的“惨不忍睹”
ziqi0716 2020-09-11
  • 打赏
  • 举报
回复
传递对象是引用传递,所以,你把tree对象或者它的某个item对象传递给button所在上下文就可以了
Bridge_go 2020-09-10
  • 打赏
  • 举报
回复
简单点的就是把父窗体当参数传到子窗体,这样就可以在子窗体访问父窗体的控件(把要访问的控件设置为公共的)
The 祺℡ 2020-09-10
  • 打赏
  • 举报
回复
控件對象都是引用類型,子窗體實例化的時候,把父窗體的treeView實例傳遞給子窗口就行了。
八爻老骥 2020-09-10
  • 打赏
  • 举报
回复
假如有个引用变量a,你要改变它的值会怎样?是不是a.prop=xxx?当然,前提就是a在你的当前的访问范围内。那a怎样能被当前的代码访问呢?
1、局部变量
2、类字段
3、公开静态变量
4、某个可访问对象的公开属性

所以,当a是个treeView的时候,你就是想办法让a变成你的代码可以访问。以上四种手段均可考虑。

当然除了以变量的方式进行修改,你也可以间接地去做这件事情。比如定义事件,事件中的代码可以修改treeview,也可以利用消息循环,通过系统消息传递修改参数,也可以定义中间变量,用一个线程去监控中间变量,然后做出相应的修改。

而以上这些,其实有个相对应的概念,叫设计模式。
晨易夕 2020-09-10
  • 打赏
  • 举报
回复
可以直接访问父窗体类的控件,然后修改它的数据项; 还可以在父窗体中创建一个委托,在子窗体中通过调用委托的方式修改控件数据项。

110,539

社区成员

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

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

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