我可能不是第一个面临这个问题的人,但我无法在任何地方找到合适的答案。
我有一个使用强类型DataSet的Windows窗体应用程序。设计器使用应用程序设置中定义的连接字符串。问题是此设置被定义为应用程序范围(因此是只读的),我需要能够在运行时更改它。在设置设计器中,当设置类型为“连接字符串”时,无法将范围更改为“用户”。并且生成的数据集不提供允许在运行时选择连接字符串的构造函数,它总是使用设置中的连接字符串。
你知道为什么MS引入了这个限制吗?你有解决方法吗?
我目前正在使用一种非常难看的解决方法:我将设置的类型更改为“String”,并将范围更改为“User”。这样,我可以在运行时更改它,它工作正常。问题是,当我需要修改设计器中的数据集时,我必须将其更改回“ConnectionString”,否则设计器将无法工作。
提前感谢您的建议!
答案 0 :(得分:5)
您可以在运行时更改ApplicationScope设置的值。虽然生成的和强类型属性是只读的,但您可以使用:
Properties.Settings.Default["App1"] = "bbb";
之后,Properties.Settings.Default.App1将显示为“bbb”;
这样可以单独保留设计时间设置。
您不能将Settings.Default.Save()
用于ApplicationScope设置,但这是故意的。普通用户没有权限在Program Files