我正在开发一个涉及多个由按钮、事件等触发的表单的程序。 我在通过多种形式传递和更改对象时遇到问题。
例如,假设我有 form 1
、form 2
和 form 3
。
我在表单 1 中定义了一个列表,但所有 3 个表单都需要能够更改该列表中的值?
我猜这不像写那么简单:
Form1 frm1 = new Form1();
Form2 frm2 = new Form2();
等...
这样做的更好方法是什么?
最佳答案
您不需要任何静态成员即可完成此操作。我会建议以下内容:
实例化所有表单都可以访问的列表。如果您要将某些控件(列表框、组合框...)数据绑定(bind)到它,请查看
BindingList
类型。让表单的构造函数接受他们将使用的列表,例如作为要绑定(bind)的数据源。
var list = new BindingList(...); var form1 = new Form1(list); var form2 = new Form2(list);
如果您的表单需要同时打开,请使用
Show
方法而不是ShowDialog
以非模式方式显示它们。
关于c# - c# 多个窗体之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127212/