遍历控件 问题 谢谢

oSiGui 2016-06-27 06:16:04
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
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2016-06-27
  • 打赏
  • 举报
回复
    this.Controls.OfType<TextBox>() //oftype 意思是只返回这个类型的对象,我这里为只返回textbox
                .Aggregate((t1,t2)=>{
            
                //t1就是当前这个,t2就是下一个,当然这个方法下面你的把t2返回一下,作为迭代的种子
                return t2;
            })
龍过鸡年 2016-06-27
  • 打赏
  • 举报
回复
用 OfType<T>:返回集合中指定类型的对象集合

var ctrls = this.panel.Controls.OfType<PictureBox>();
oSiGui 2016-06-27
  • 打赏
  • 举报
回复
那如果this.panel.Controls上只有PictureBox if (crl is PictureBox) 不用,我这里因为还有其他控件所以才用的。 能不能确定下一个PictureBox? 控件数组呢??
全栈极简 2016-06-27
  • 打赏
  • 举报
回复
类似
for (int i = 1; i <= 80; i++)
            {
                ((CheckBox)this.Controls.Find("checkBox" + i, true)[0]).Checked = false;
            }
xuzuning 2016-06-27
  • 打赏
  • 举报
回复
你都直到用 if (crl is PictureBox) 判断一下当前的是否为 PictureBox,那么你怎么知道下一个 PictureBox 在哪呢? 用 for 也一样,你同样不能确定下一个控件就是 PictureBox
oSiGui 2016-06-27
  • 打赏
  • 举报
回复
那怎么用for 替代掉foreach遍历PictureBox?
全栈极简 2016-06-27
  • 打赏
  • 举报
回复
用for循环是合适的,其实跟你自己写array[i]、array[i+1] 这种代码没有区别,不要把自己绕进去。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧