C#在主应用程序中修改类库(自定义控件)的Properties.Settings(settings.settings)

项目结构如下图:

自定义控件项目UserControls中有自己的Settings.settings文件,

主程序项目WindowsFormsApp21也有自己的Settings.settings文件,

主程序中使用了MyButton自定义控件,

C#在主应用程序中修改类库(自定义控件)的Properties.Settings(settings.settings)

 

需求是希望能在主程序中修改某个变量后的值,能统一应用到MyButton的所有实例中。

将这个变量放到UserControls中的Settings.settings中是比较合理方便的,

这样只要主程序修改该变量的值后保存到自定义控件的Settings.settings文件,

重写自定义控件在事件触发时的处理程序,在触发事件时读取Settings.settings的值并判断即可。

但问题是,主程序只能访问自己的Settings.settings,自定义控件也只能访问自己的Settings.settings文件,

 

经过多次测试,发现只要将Settings.settings类的访问级设为public,即可在主程序中通过UserControls.Properties访问并修改(如下图所示)

C#在主应用程序中修改类库(自定义控件)的Properties.Settings(settings.settings)

或者在界面修改

C#在主应用程序中修改类库(自定义控件)的Properties.Settings(settings.settings)