c# - 如何按从上到下的设计顺序或设置顺序循环检查复选框

标签 c#

到目前为止我有这段代码:

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/

相关文章:

c# - EF Core LINQ 从包含的实体中排除列

c# - 开发 Windows 8 应用程序时替换 System.drawing

c# - 内部使用 yield

c# - 使用 BulkCopy(C#、SQL)插入对象或更新(如果它已存在)

c# - MVC 发布数据并返回 json 数据

c# - 在Unity3D中读取NFC标签

c# - 线性函数 : y = mx + b (2 points given) in code

c# - 在 Windows 上开发但在 Linux 上运行的 ASP.NET 5

c# - 如何在c#代码中在iis 5.1中添加新的应用程序池?

c# - 许多行的 SQLite 更新非常慢