在winfrom中有四个不同种类的控件,大概200个左右,要求挨个查看控件状态,比如radiobutton控件的.checked状态和textbox的.text状态。并把这些保存到数据库里
目前保存到数据库这些都还好说,问题挨个查看控件状态。是不能用数组,不能用foreach循环,那么到底该怎么查看状态?把每个控件挨个敲?不应该这么麻烦吧?
7 个解决方案
#1
可以用 while 不?
var em = Controls.GetEnumerator();
while (em.MoveNext())
{
var c = em.Current;
//do something with c
}
#2
还有 c 的类型是 object,你要自己强转 c 的类型才可以读到数据,可以用 is 来判断,反正你的控件类型也只有4种。
另外这跟用 foreach 没有本质区别,foreach 的底层实际上就用 Enumerator 来搞的。
另外这跟用 foreach 没有本质区别,foreach 的底层实际上就用 Enumerator 来搞的。
#3
不能循环你除了一个个手打外你还想怎么搞
#4
lz专门说不能用foreach循环,不知道为毛会有这个限制,for和while也是循环,可以用这两个也是没问题的,但是连这两个都不能用那就只能手打了,要不就把循环写到另一个方法里然后调用一下。
#5
不用循环就逐个枚举
是不能用数组,不能用foreach循环
是不知道有 Controls 集合吧
是不能用数组,不能用foreach循环
是不知道有 Controls 集合吧
#6
你还可以直接绑定数据源,就不用循环了= =
#7
谢谢各位,最后决定挨个敲
说这样比较明了,好更改
说这样比较明了,好更改
#1
可以用 while 不?
var em = Controls.GetEnumerator();
while (em.MoveNext())
{
var c = em.Current;
//do something with c
}
#2
还有 c 的类型是 object,你要自己强转 c 的类型才可以读到数据,可以用 is 来判断,反正你的控件类型也只有4种。
另外这跟用 foreach 没有本质区别,foreach 的底层实际上就用 Enumerator 来搞的。
另外这跟用 foreach 没有本质区别,foreach 的底层实际上就用 Enumerator 来搞的。
#3
不能循环你除了一个个手打外你还想怎么搞
#4
lz专门说不能用foreach循环,不知道为毛会有这个限制,for和while也是循环,可以用这两个也是没问题的,但是连这两个都不能用那就只能手打了,要不就把循环写到另一个方法里然后调用一下。
#5
不用循环就逐个枚举
是不能用数组,不能用foreach循环
是不知道有 Controls 集合吧
是不能用数组,不能用foreach循环
是不知道有 Controls 集合吧
#6
你还可以直接绑定数据源,就不用循环了= =
#7
谢谢各位,最后决定挨个敲
说这样比较明了,好更改
说这样比较明了,好更改