在我的表单中添加一个控件时,目前我必须使用我的内部数据结构将其与我的保存和加载代码连接起来,我必须对所有控件执行此操作。这种情况严重违反了DRY(不要重复自己)原则,并且可能会引入微妙的错误。
我想出了在foreach循环中遍历所有控件的想法,Name属性将是键,Text(或者取决于类型的任何东西)将是字典中的值(过滤用户输入)程序期间的控制)。这样我就必须序列化/反序列化字典以保存/加载它。
那么,我为什么要问?我是初学者,我认为有更多经过验证和测试过的方法可以完成相同的任务,然后我想出了什么。
抱歉我笨重的英语,我没有把它作为我的第一语言学习。
感谢您的帮助
注意:我知道WPF,但我必须坚持.net 2.0
答案 0 :(得分:1)
已经有很好的例子,请参阅RealPosition。我们通过在设计器中的表单上放置一个组件并在那里指定必要的属性来修改此源以在我们的项目中执行表单/控件位置保存。查看MSDN上的IExtenderProvider和ISupportInitialize接口。
答案 1 :(得分:0)
理想情况下,您希望所有控件都从基类继承,然后基类可以在每个控件初始化时处理所有这些。如果您需要字典然后将字典传递给方法,则该方法可以设置控件所需的所有各种属性。
如果每个控件都继承,则逻辑被共享,DRY:)