foreach (Control crl in this.panel.Controls)
{
if (crl is PictureBox)
{
crl.Name………..正在当前操作,下一个PictureBox,怎么样操作?
crl.Move……….
……
}
}
假如用
for(int i=1;i<=10;i++)
{
if (array[i] == 5)
………..
array[i+1]=? –这里可以+1来操作下一个,那foreach呢?
}
注:在当前PictureBox控件时,操作下一个PictureBox??
不是一个一个循环下去执行PictureBox
{
if (crl is PictureBox)
{
crl.Name………..正在当前操作,下一个PictureBox,怎么样操作?
crl.Move……….
……
}
}
假如用
for(int i=1;i<=10;i++)
{
if (array[i] == 5)
………..
array[i+1]=? –这里可以+1来操作下一个,那foreach呢?
}
注:在当前PictureBox控件时,操作下一个PictureBox??
不是一个一个循环下去执行PictureBox
解决方案
4
你都直到用 if (crl is PictureBox) 判断一下当前的能否为 PictureBox,那么你怎么知道下一个 PictureBox 在哪呢?
用 for 也一样,你同样不能确定下一个控件就是 PictureBox
用 for 也一样,你同样不能确定下一个控件就是 PictureBox
13
相似
for (int i = 1; i <= 80; i++) { ((CheckBox)this.Controls.Find("checkBox" + i, true)[0]).Checked = false; }
10
用 OfType<T>:返回集合中指定类型的对象集合
var ctrls = this.panel.Controls.OfType<PictureBox>();
13
this.Controls.OfType<TextBox>() //oftype 意思是只返回这个类型的对象,本人这里为只返回textbox .Aggregate((t1,t2)=>{ //t1就是当前这个,t2就是下一个,当然这个方法下面你的把t2返回一下,作为迭代的种子 return t2; })