FlowLayoutPanel布局控件只能显示一个控件

RainStarNetwork 2010-07-22 05:00:38
用FlowLayoutPanel布局控件,如outlook的联系人的卡片模式那样。现在的问题是每个人的卡片都被排列在第一个位置,致使只能看见一个人的卡片模式,其他的都被遮盖住了。请问这是什么原因?谢谢
代码类似如下
MainFlowLayoutPanel.Controls.Clear();
MainFlowLayoutPanel.SuspendLayout();
foreach (UserCard item in UserCards)
{
MainFlowLayoutPanel.Controls.Add(item);
}
UserCard 为包含图片姓名等的自定义控件。
...全文
312 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
RainStarNetwork 2010-07-23
  • 打赏
  • 举报
回复
不好意思,没认真留意3楼的代码。的确3楼与七楼为正解。谢谢两位
闪耀星星 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wxm3630478 的回复:]
this.flowLayoutPanel1.Controls.Clear();
// this.flowLayoutPanel1.SuspendLayout(); //这个去掉
for(int i = 0;i < 10;i++)
{
this.flowLayoutPanel1.Controls.Add(new Button());
}
[/Quote]
也可以
闪耀星星 2010-07-23
  • 打赏
  • 举报
回复
你挂起了布局,没有恢复啊。添加完控件后MainFlowLayoutPanel.ResumeLayout();
RainStarNetwork 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxm3630478 的回复:]
FlowLayoutPanel?

不可能吧? 怎么会叠在一起呢
[/Quote]
这个好像没得设置位置的吧
RainStarNetwork 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wxm3630478 的回复:]
this.flowLayoutPanel1.Controls.Clear();
// this.flowLayoutPanel1.SuspendLayout(); //这个去掉
for(int i = 0;i < 10;i++)
{
this.flowLayoutPanel1.Controls.Add(new Button());
}
[/Quote]
去掉这行代码不行,就是叠罗汉了。原本是可以的,后来不知道怎么就不行了。
zhangdoublepan 2010-07-22
  • 打赏
  • 举报
回复
this.flowLayoutPanel1.Controls.Clear();
// this.flowLayoutPanel1.SuspendLayout(); //这个去掉
for(int i = 0;i < 10;i++)
{
this.flowLayoutPanel1.Controls.Add(new Button());
}
wxm3630478 2010-07-22
  • 打赏
  • 举报
回复
this.flowLayoutPanel1.Controls.Clear();
// this.flowLayoutPanel1.SuspendLayout(); //这个去掉
for(int i = 0;i < 10;i++)
{
this.flowLayoutPanel1.Controls.Add(new Button());
}
happyer_longlong 2010-07-22
  • 打赏
  • 举报
回复
位置没设置好吧 叠罗汉了
wxm3630478 2010-07-22
  • 打赏
  • 举报
回复
FlowLayoutPanel?

不可能吧? 怎么会叠在一起呢
FlowLayoutPanel 一些应用程序需要一个布局可随窗体大小的调整或其中内容大小的改变而自动进行适当排列的窗体。在需要动态布局并且不希望在代码中显式处理 Layout 事件时,可考虑使用布局面板。 FlowLayoutPanel是.NET Framework的新增控件。顾名思义,面板可以采用Web窗体的方式给Windows窗体布局FlowLayoutPanel一个容器,允许以垂直或水平的方式放置包含的控件。除了放置控件之外,还可以剪辑控件。放置的方向使用FlowDirection属性和FlowDirection枚举来设置。WrapContents属性确定在重新设置窗体的大小时,控件是放在下一行、下一列,还是剪辑控件FlowLayoutPanel 按特定的流方向排列其内容:水平或垂直。其内容可从一行换到下一行,或者从一列换到下一列。另一种情况是不换行,而是将其内容截掉。 相信大家在做WinForm项目的时候,要对大量的控件进行排序(位置摆放),这个容器肯定最受欢迎,但很遗憾的是,此容器本身虽支持Dock和Anchor属性,但不支持放入此容器内的控件的Dock和Anchor属性(自动调整宽度),也就说,但窗体伸缩,FlowLayoutPanel容器自身可以缩放,但是里面的控件就没那么幸运了,不支持自动缩放,这样就必须写方法来触发新的事件来调整控件的大小,这样就会导致窗体的闪烁(重绘)。 借助ManagedSpy工具,我们可以看到此容器里面的器件的结构,我们可以在Form1里面添加一个事件SizeChanged 对容器里面每个器件重新给它大小 就行了。 附件:FlowLayoutPanel的Demo

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧