问题描述
还是Textbox控件的问题。。。。哦,也不一定是textbox的控件,包括其他winform的控件问题,控件里除了Tag,Text和Name的属性外,还有没有其他属性可以保存数据的啊??我知道可以自己再写个自定义控件可以实现,但是程序里的用到的控件是可以给几个文本框的赋值的,所以不能定死了是什么控件~~~例子:窗口中有TextBox1,TextBox2,Combobox1,DatePicker1等等DimCtrlXAsSystem.Windows.Forms.Control以下情况会出现CtrlX=Textbox1CtrlX=TextBox2CtrlX=Combobox1所以用自定义控件的方式保存额外多的几个属性好像不太行。。我的要求只是在CtrlX.Tag/Textbox/Name都被用了后,还要再保存其他的属性。。。而且代码是要在同一个form窗口的代码实现的~~~谢谢!!
解决方案
解决方案二:
为何不自定一个容器记录这些属性,自定义容器想保存几个属性都行。然后记录一个容器和控件的绑定关系。如Dictionary<Control,MyAttrContainer>,这里MyAttrContainer是你自定义容器(当然也可以是系统本身提供的容器,如Dictionary)。dimdicasnewDictionary(OfControl,Dictionary(OfString,Object))'设置属性集合dimattrasnewDictionary(OfString,Object)attr.Add("属性1",value1)attr.Add("属性2",value2)'添加控件与属性的关系dic.Add(CtrlX,attr)
这样,用如下方法访问控件绑定的属性:'访问属性1dic.Item(CtrlX).Item("属性1").Value
解决方案三:
tag就可以了啊Tag的类型是Object,你完全可以引用一个自定义类型,或者数组列表之类的来保存你要的信息那个数组和列表嘛又可以是Object[],ArrayList这类的可以放任何类型的东东
解决方案四:
引用楼主ncusc的回复:
还是Textbox控件的问题。。。。哦,也不一定是textbox的控件,包括其他winform的控件问题,控件里除了Tag,Text和Name的属性外,还有没有其他属性可以保存数据的啊??我知道可以自己再写个自定义控件可以实现,但是程序里的用到的控件是可以给几个文本框的赋值的,所以不能定死了是什么控件~~~例子:窗口中有TextBox1,TextBox2,Combobo……
這樣的想法不可取,如果要保存Textbox的text、name或其他屬性的值,可以寫到後臺文件去。不要東拼西湊的濫用其他屬性來達到你的目的。
解决方案五:
顶3楼。楼主的想法太《太灵活》了。