日期:2014-05-17  浏览次数:20989 次

求winform中usercontrol之间的传值问题,C#
本帖最后由 anthonymichelle 于 2012-11-17 01:23:23 编辑
还请详细点说出uesercontrol之间的传值具体怎么操作吧,比如usercontrol1中textbox1内容为动态输入内容,在点击btn后可以将这段字符串传给 usercontrol2中的textbox2在usercontrol2显示的时候显示出来。
PS:这两个usercontrol都放在一个panel中,通过mainform中的treeview节点的选择进行usercontrol的切换显示。

------解决方案--------------------
具体分析下你的需求(具体实现留给你自己思考好了,不难的)

你应该这么设计:控件1定义一个TextBoxValueSubmitted事件,当用户点击其中的按钮的时候触发。控件本身不应该知道触发了事件外部谁关心它,也不必知道外部接到通知该做什么,它只负责按了按钮就触发这个事件把消息传出去就行了。

控件2应该有一个TextBoxValue属性,外部可以通过它设置文本框的值。同样的道理,这个控件不应该知道为什么这个值要被设置,也不应该知道谁在试图修改它,它只要接到调用请求,就照着做就行了。

你的主程序应该编写一个事件处理函数,并且关联给控件1的TextBoxValueSubmitted事件,就好比你使用一个按钮而准备一个Click事件的处理函数那样。在这个处理函数中,你去调用控件2的TextBoxValue属性,设置正确的值。主程序不关心控件1的事件怎么触发,也不关心设置属性后控件2会做什么,它就是一个桥梁,把这些控件联系在一起。

当你把这三个职责明确的角色创建完成,你就会发现,虽然每个部分都只做自己的事情,但是整个程序的流程却完全按照你的要求运行了。