想象一下,您有FormA和FormB。 FormA有一个ListBox1,用于显示DataSource1的值(可以是列表或数组,但底线是它使用ListBox.DataSource赋值)。 FormB将被实例化并由FormA调用。 FormA会修改(将单个行添加到列表或数组中,当时为1行)DataSource1在FormA中提供ListBox1。你如何要求FormA及其ListBox1重新加载DataSource1并显示由FormB修改的新值?目前FormA将包含源(列表或数组)的整个对象传递给FormB的构造函数中的FormB。我可以在FormB的构造函数中传递FormA引用,并以这种方式调用FormA的方法,但它是最有效的方法吗?请求表单执行控制更新
0
A
回答
0
事实证明,我是有错的。事件处理就是答案。 FormA应该有一个方法将数据源重新加载到ListBox1中。应该有另一个可以委托的方法,将对象作为发件人和EventArgs作为e。在formB实例化中,适当的FormB的事件处理程序应该像接受任何代理一样接收发送者和事件参数。在这种情况下,我可以使用FormClosedEventHandler。或者,该方法可以委派给DataSource1.DataSourceChangedEventHandler。就是这样!当事件被触发时,FormA作为观察者并通过委托执行自己的方法。
2
我认为你需要的observer Pattern
tutorial
如果它是你第一次使用观察员,你应该看看整个MVC Pattern
相关问题
- 1. 更新WebClip:请求执行失败
- 2. 对于单个请求,控制器正在执行两次
- 3. POST请求更新行
- 4. KrakenJS:通过控制器执行POST请求以错误结束
- 5. Grails - 跨控制器代码,在每个请求上执行
- 6. 执行HTTP请求
- 7. 执行cUrl请求
- 8. Jmeter请求执行
- 9. 简单的Ajax请求控制器 - Symfony3
- 10. 使用Volley执行单个请求
- 11. 执行简单的POST请求Swift
- 12. 如何执行单线程请求?
- 13. .NET 3.5的图表控制例外:错误执行的ChartImg.axd子请求
- 14. ajax请求控制器更新laravel视图
- 15. 在更改form_dropdown时向控制器提交一个新请求
- 16. 执行HTTP POST请求,然后执行HTTP GET请求
- 17. 控制器与AJAX请求行为
- 18. 更新自定义的CursorAdapter执行内部getView请求失败
- 19. 当参数更改时,Ember.js路由不会执行新请求
- 20. 如何在后台执行ajax请求和html元素更新?
- 21. 如何使用twit执行媒体POST请求的更新?
- 22. 请求单位置更新,AVD崩溃
- 23. 更新提交/拉请求Github清单
- 24. 从Play 2.0 Scala控制器请求获取表单参数值
- 25. 空表单字段Ajax请求到Spring控制器
- 26. 无法收到来自我的控制器的表单请求
- 27. 如何使用表单动作执行请求映射?
- 28. jQuery在提交时从表单执行ajax请求?
- 29. Laravel行更新,请求方法
- 30. 微软访问请求更新表格后2个请求
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –