C# 从分离的类中设置windows窗体属性值
我正在编写一个windows窗体应用程序。我有很多表格,C# 从分离的类中设置windows窗体属性值,c#,winforms,C#,Winforms,我正在编写一个windows窗体应用程序。我有很多表格, 我想一次设置所有属性。您需要的是所有表单的集合。虽然您可以自己制作,但实际上应用程序已经有了一个。当它接收到来自操作系统的关闭请求时,它使用它向每个表单发送Form.Close()。或者它用什么来决定“所有形式都结束了,时间到了” 由于WindowsForms来自前泛型时代,因此有一个专门的集合: 现在,一个列表就可以了,但当你得到一个soemthing时,它将是旧类型的。从中获取它们的静态属性是 OpenForms的声明 但是请注意,这
我想一次设置所有属性。您需要的是所有表单的集合。虽然您可以自己制作,但实际上应用程序已经有了一个。当它接收到来自操作系统的关闭请求时,它使用它向每个表单发送Form.Close()。或者它用什么来决定“所有形式都结束了,时间到了” 由于WindowsForms来自前泛型时代,因此有一个专门的集合: 现在,一个
列表就可以了,但当你得到一个soemthing时,它将是旧类型的。从中获取它们的静态属性是
OpenForms的声明
但是请注意,这仅包括打开的表单。已调用Show()或ShowDialog()上尚未关闭()的窗体。已实例化但未打开或已关闭的表单?应用程序并不关心这些。那些还没有被创造出来的?您需要手动应用此选项
IIRC有一些特殊情况,表格已经打开,但从那时起(而不是关闭)。我一直建议不要使用这个功能,因为它会引起各种各样的问题。因此,我不确定它对该列表的具体作用。您可以使用PropertyBinding
,该值是应用程序中的保存设置
我举一个例子:
在属性窗口中,选择应用程序设置、属性绑定:
并选择所需的属性(如果存在设置),选择或新建:
之后,您可以更改“设置”窗口上的值,所有具有设置的表单都将更改:
结果:
值保存在.config文件中:
<applicationSettings>
<WindowsFormsPropertiesBind.Properties.Settings>
<setting name="BackColor" serializeAs="String">
<value>LightBlue</value>
</setting>
</WindowsFormsPropertiesBind.Properties.Settings>
</applicationSettings>
淡蓝色
所有属性?我想只是一些,对吗?就像一张“皮肤”,不知怎的?您想要硬编码的静态值,还是应该通过代码更改它们?您可以将属性绑定到共享模型。对于表单属性,可能需要一些设置。不是所有属性,而是所有表单共享相同的属性。此时,您需要所有表单的集合。我90%确信应用程序本身也有类似的功能,但如果有疑问,您可以自己制作一个。请查看:,…您已经使用了继承吗?