首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winforms控件

Winforms控件
EN

Stack Overflow用户
提问于 2021-01-30 16:55:53
回答 1查看 32关注 0票数 1

对于我的问题,我想不出一个连贯的搜索词,所以请原谅我之前曾被问过这个问题。

我有24个组合框坐在一个面板上,显示在4行6。

在用户定义了每个组合的值并点击"go“按钮之后,我添加了所有的组合框来列出,这样我就可以在我的程序的另一部分中使用这些值了。

问题是,将组合框添加到列表中的顺序与面板上的可视化布局相比是混乱的,我想定义顺序。目前,它在列表中添加了第9个组合框,然后是第20、第2、第16等。

我试过TabIndex,但那不起作用。

在我手动重命名和重新命名所有的盒子之前,我们将感激地收到任何其他建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-30 17:37:34

窗体的控件存在于容器控件的Controls集合中,例如,当您向窗体添加面板和按钮,向面板添加两个ComboBox时:

panel1

  • Panel.Controls包含comboBox1和comboBox2

控件添加到Controls集合中,其顺序与将它们添加到设计器的顺序相同。打开designer.cs,查看InitializeComponent的末尾以查看订单。您还可以使用窗口查看/更改订单。

尽管如此,现在应该很明显,panel1.Controls.OfType<ComboBox>()返回组合框的顺序与您在文档大纲中看到的顺序相同(或者基于它们的z索引,并且与它们的x/y位置没有任何关系)。

您可能希望根据TabIndex或您喜欢的任何其他属性对它们进行排序:

代码语言:javascript
复制
panel1.Controls.OfType<ComboBox>().OrderBy(x=>x.TabIndex)    

Note

通常,如果要将这些值用于搜索,而不是依赖于值的顺序,更好的方法是创建一个具有几个属性的SearchModel类,将这些属性设置为相应组合框的选定值(手动或使用数据库),然后将搜索模型传递给其他类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65970644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档