到目前为止我有这段代码:
foreach (Control child in TableNamePanel.Controls)
{
if (!(child is CheckBox))
continue;
if ((child as CheckBox).Checked)
{
Code...
}
}
在我的设计中,CheckBoxes
彼此重叠,而另一个确实很重要。我想选中第一个 checkbox
,然后是下一个,依此类推。目前它是从底部开始的。有什么方法可以改变它,或者设置它循环控制项的顺序?
最佳答案
我认为当你循环遍历它们时,它们是根据它们在设计中的顺序排列的
但它们不是你可以在复选框上设置 CheckBox.TabIndex
属性来对其进行排序
var orderedcheckbox= TableNamePanel.Controls.OfType<CheckBox>()
.OrderBy(c => c.TabIndex);
这里我假设 tabindex 属性可用,据我所知,此属性在 .net 中可用。
包括@dotNET 评论中建议的其他解决方案
你的控件在设计时的 TabOrder,无论如何他都应该有。另一种方法是在上面的代码中使用复选框的 Location 属性而不是 TabOrder。
关于c# - 如何按从上到下的设计顺序或设置顺序循环检查复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31376910/