Code Bye

遍历控件 问题 谢谢

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
解决方案

4

你都直到用  if (crl is PictureBox) 判断一下当前的能否为 PictureBox,那么你怎么知道下一个 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;
            })

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明遍历控件 问题 谢谢