关于窗体交互 有两个窗体FormA,FormB,在FormB需要更新FormA的listview,我的做法是在FormA写个公有函数,然后在FormB的构造函数传个forma引用进去。我觉得这种做法有种欠妥~大家觉得呢?还有有什么想法呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方案一、楼主的方案二、在FormB添加自定义事件,FormA订购该事件并在事件处理中更新ListView两种方法都有可取之处。具体看应用场景。 在FormB里面使用:(记得把ListView设为Public之类的)(Application.OpenForms["FormA"] as FormA).ListView 其实想要清静的架构很容易,只要坚持“客户-服务”关系模式,避免相互纠结相互依赖的关系。比如说A依赖于B,那么A就可以直接操作B,但是此时B一定要使用依赖倒置的原则与A(以及一切对此服务感兴趣的宿主客户端)通讯。依赖倒置是很重要的。如果你总是相互依赖,那么关键时候你也不知道该如何清爽地交互了,而且也不知道如何扩展这种关系了。 常用的设计方案是:form之间不直接通信,1.编写通信契约,更多的是采用现成的,比如:json,xml等,2.通过一个服务来实现信息交互这样的话,所有form也好,客户端也好,他们不会相互依赖,他们都只依赖于一个对通信的统一描述,删除任何一个form,甚至不需要做其他任何修改 【新人求助】Session老丢失,求替代方法 关于js的全选/反选? GID问题:C#里面如何使用位图字体 初学C#问一个简单问题 在Form1中新建Form2后,如何让Form1中的程序暂停? datagrid没有绑定数据的时候,怎么在datagrid上写几个字 (在线等待) C#中一个简单的问题.(服务器,客户端).....急急急...... 如何用正则获取一串字符串里的数字 急急急!那儿出错了?? C#中的换行符是什么? 16进制的数据有没有什么好的压缩算法? 最大概似法
方案二、在FormB添加自定义事件,FormA订购该事件并在事件处理中更新ListView
两种方法都有可取之处。具体看应用场景。
(Application.OpenForms["FormA"] as FormA).ListView
1.编写通信契约,更多的是采用现成的,比如:json,xml等,
2.通过一个服务来实现信息交互
这样的话,所有form也好,客户端也好,他们不会相互依赖,
他们都只依赖于一个对通信的统一描述,
删除任何一个form,甚至不需要做其他任何修改