流布局面板问题

Posted

技术标签:

【中文标题】流布局面板问题【英文标题】:Flow Layout Panel issues 【发布时间】:2011-11-18 22:09:40 【问题描述】:

我正在尝试制作控件列表。为此,我使用了流布局面板和自定义项。阅读 XML 文件后,我用我的项目填充流布局面板。对于少数项目,一切看起来都还可以,但对于流程布局面板中的 371 个项目,则出现问题。在流程布局面板的底部,缺少 95 个项目,并且接缝重叠。我认为,为这些项目定位的空间仍然是创建的。我附上一个屏幕产生的效果。控件在数组中创建,然后我迭代该数组以将控件添加到流布局面板。

http://img510.imageshack.us/img510/3201/screen2011916213527199.jpg

谢谢。

乐:

public delegate void AddHistoryItemDelegate(Control itm);
        public void AddHistoryItem(Control itm)
        
            if (InvokeRequired)
            
                Invoke(new AddHistoryItemDelegate(AddHistoryItem), new object[]  itm );
            
            else
            
                flowLayoutPanel1.Controls.Add(itm);
            
        
foreach (Control c in histroryItems)
            
                controls++;
                backgroundWorkerLoadHistory.ReportProgress(controls);
                //flowLayoutPanel1.Controls.Add(c);
                AddHistoryItem(c);
            

委托之所以存在,是因为所有这些都发生在一个单独的线程中。 historyItems 是一个控件列表。

LE:如果它很重要,我观察到,如果我从列表中删除一个项目,在列表加载后,它会被安排。尝试一些小技巧,看看在线程末尾添加和删除控件是否没有任何效果。

【问题讨论】:

C# 没有 FlowPanel。或任何控件。 是关于 Winforms 中的 FlowLayoutPanel。抱歉,缺少标签。 【参考方案1】:

你可以试试这个:

        this.flowLayoutPanel1.SuspendLayout();

在添加控件之前:

        this.flowLayoutPanel1.ResumeLayout();

添加控件后。也许应该连续执行以下操作:

        this.flowLayoutPanel1.PerformLayout();

和/或:

        this.flowLayoutPanel1.Refresh();

【讨论】:

【参考方案2】:

我发现我必须这样做:

private void flpChoices_Scroll(object sender, ScrollEventArgs e)

   Control c=flpChoices.GetChildAtPoint(new Point(10, 10), GetChildAtPointSkip.None);
   if (c == null) flpChoices.PerformLayout();

flpChoices 是我的FlowLayout Panel。现在我认为滚动事件不会在鼠标滚轮移动时触发,所以我不知道该怎么办。

编辑:即使滚轮也有隐藏(不在属性窗口中):

void flpChoices_MouseWheel(object sender, MouseEventArgs e)

  Control c=flpChoices.GetChildAtPoint(new Point(10, 10), GetChildAtPointSkip.None);
  if (c == null) flpChoices.PerformLayout();


【讨论】:

感谢您的信息。我会尝试看看它是如何工作的。然而,我改变了设计,我正在使用“加载更多...”按钮 :) 这行得通吗?你有一个例子吗?我对我这样做的方式并不满意。

以上是关于流布局面板问题的主要内容,如果未能解决你的问题,请参考以下文章

c#保存流布局面板

关于waterfall 瀑布流布局出现布局错乱的问题

瀑布流布局顶端边距失效是怎么回事

瀑布流网页布局+加载动画+固定加载页数

css 瀑布流布局问题 高手进

iOS流布局UICollectionView系列七——三维中的球型布局