【问题标题】:Find controls that break the flow in FlowLayoutPanel在 FlowLayoutPanel 中查找中断流的控件
【发布时间】:2015-12-16 01:42:03
【问题描述】:

当向FlowLayoutPanel 添加一些控件时,有什么方法可以找到哪些控件导致新行中的流中断?

for(i=0;i!=100;i++){
  var userControl = new MyUserControl();
  myFlowLayoutPanel.Controls.Add(userControl);
} 

这 100 个userControls 排列在 20 行和 5 列中,因此第 1、5、15、..、100 个用户控件会导致 myFlowLayoutPanel 换行。 我正在寻找一种方法来检测这些控件。

【问题讨论】:

  • @SergiiZhevzhyk:我更新了帖子。
  • 为什么不简单地按顺序迭代控件并比较Top
  • @Amit:当我调整父窗体的大小时,控件的排列方式不同,所以 20 X 5 不固定。
  • 所以你想知道他们什么时候移动,或者哪些是导致新行的? (如果是后者,我还是没看出问题)

标签: c# winforms flowlayoutpanel


【解决方案1】:

很遗憾,没有方法或属性可以为您提供此信息,但您可以手动计算:

Control prevControl = null;
foreach (Control control in myFlowLayoutPanel.Controls)
{
     if (prevControl == null || prevControl.Left > control.Left)
     {          
          // line break
     }
     prevControl = control;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 2019-06-29
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多