gpt4 book ai didi

c# - 按顺序循环父控件

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:13 26 4
gpt4 key购买 nike

我在 groupbox 的 24 个图片框上循环显示一些东西,但它没有以正确的顺序循环,它可能从第 18 个图片框开始,这是我使用的代码

foreach (var pb in groupBox1.Controls)
{
if (pb is PictureBox && previewIndexer < Previewer.Count)
{
try
{
((PictureBox)pb).Image = ...
previewIndexer++;
...
}
catch
{
...
}
}
}

我想按升序循环,首先在 picturebox1 上循环直到 picturebox24,谢谢,祝你有美好的一天

最佳答案

您的问题是按名称对控件进行排序。您需要按字母数字排序,以便 picturebox10 排在 picturebox5 之后。如果您按名称中的数字对图片框进行排序,则可以这样做:

foreach (var pb in groupBox1.Controls.OfType<PictureBox>()
.OrderBy(x => Int32.Parse(x.Name.Substring("picturebox".Length))))
{
pb.Image = ...;
}

我什至会创建一些方法(它从控件名称中删除所有非数字字符并尝试将其余部分解析为整数值):

private int GetControlId(Control control)
{
int id;
string idToParse = Regex.Replace(control.Name, @"\D+", "");
return Int32.TryParse(idToParse, out id) ? id : 0;
}

并在查询中使用了这个方法

var pictureBoxes = groupBox1.Controls.OfType<PictureBox>();

foreach (var pb in pictureBoxes.OrderBy(GetControlId))
{
pb.Image = ...;
}

关于c# - 按顺序循环父控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18871765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com