「控件控」被埋没的控件:FlowLayoutPanel

Conmajia 2012-05-06 10:17:05
再来玩一个

2005 年微软发布了 Visual Studio 2005,里面提供了大量新增的控件和类。FlowLayoutPanel 也是从这时进入了我们的视线。



MSDN 里是这么介绍它的

引用
FlowLayoutPanel 控件沿着水平或垂直流向排列其内容。它的内容可以从一行换到下一行或从一列换到下一列。或者,还可以对它的内容进行剪裁,而不是进行换行。

可以通过设置 FlowDirection 属性的值来指定流向。在从右向左 (RTL) 的布局中,FlowLayoutPanel 控件会相应地反转其流向。还可以通过设置 WrapContents 属性的值来指定是对 FlowLayoutPanel 控件的内容进行换行还是剪裁。

任何 Windows 窗体控件(包括 FlowLayoutPanel 的其他实例)都可以是 FlowLayoutPanel 控件的子级。使用此功能,可以构造在运行时能够根据窗体的尺寸进行相应调整的复杂布局。

子控件的停靠和锚定行为与其他容器控件的行为不同。停靠和锚定行为均相对于流向中的最大控件。有关更多信息,请参见如何:在 FlowLayoutPanel 控件中锚定和停靠子控件。


细细品味下,原来这家伙的功能那是相当的强悍啊,可惜大多数人要么不用它,要么这样用它。



时间跑得飞快。眼睛一闭一睁,已经是 2012 年了。

时隔 7 年,最新操作系统 Win 8 带着[color=#FF0000]最潮界面 Metro UI
席卷全球。
[/color]



已经被压在箱底 N 年的 FlowLayoutPanel 看到这里,不禁虎躯一震:「这不我的菜吗?」

各位请看,震撼图片即将上场。

这是 VS2005 制作的仿 Metro 界面,感觉如何?





怎么样?还原度,有没有?

可见,只要舍得蛋疼,系统自带控件同样华丽。老旧的控件依然能走在时尚的最前沿,依然那么的犀利。。

...全文
3321 50 打赏 收藏 转发到动态 举报
写回复
用AI写文章
50 条回复
切换为时间正序
请发表友善的回复…
发表回复
cliffyanT 2013-10-16
  • 打赏
  • 举报
回复
除了控件的显示以外,如何触发子空间的时间呢,我在代码里面添加了事件的委托,但是却触发不了!
Conmajia 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 的回复:]
引用 5 楼 的回复:

winform版的div
可用于做MVC设计模式下的自动化布局的容器单元
是的。这个控件使用的比较少。。。。
[/Quote]

功能强大局限性也大,这就是flowlayoutpanel的尴尬所在
Conmajia 2012-05-12
  • 打赏
  • 举报
回复
顺便在此求高人赏赐tile的控件。。我图里面都是些picturebox。。
Conmajia 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 的回复:]
楼主说说怎么实现的??感兴趣。
[/Quote]

非常简单,添加 2 个小的 tile 或者 1 个大的 tile 就设置 FlowLayoutPanel.SetFlowBreak(Control control, bool value) 换行就行了

tile 的大小要注意下,小的 1x1,大的 2x1
青出于蓝 2012-05-09
  • 打赏
  • 举报
回复
楼主说说怎么实现的??感兴趣。
Conmajia 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 44 楼 的回复:]
标题党
[/Quote]

我真荣幸,头一次被说标题党
bcrun 2012-05-09
  • 打赏
  • 举报
回复
标题党
junkli 2012-05-08
  • 打赏
  • 举报
回复
收藏之
sosoyiyi 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 的回复:]

引用 28 楼 的回复:

不清楚C# 界面库的功力如何。接触过Java Swing界面库,太强大了

只有接触了Microsoft Expression Blend工具后,你才会知道什么是强大
[/Quote]
同意
  • 打赏
  • 举报
回复
没看到图片
wy811007 2012-05-08
  • 打赏
  • 举报
回复
话说 那个winform 关于about的界面 就用这个控件 嘎嘎
new_fengzi 2012-05-07
  • 打赏
  • 举报
回复
嗯,控件确实强大。
Conmajia 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 的回复:]
类似WPF里的WarpPanel,行满后自动换行。在某些情况下很方便的。
[/Quote]

WrapPanel
Conmajia 2012-05-07
  • 打赏
  • 举报
回复
美丑纯属个人习性。。不过建议用下 Win8,以及更多的 OS,多看看
mizuho_2006 2012-05-07
  • 打赏
  • 举报
回复
类似WPF里的WarpPanel,行满后自动换行。在某些情况下很方便的。
shadan05 2012-05-07
  • 打赏
  • 举报
回复
顶,昨天还研究了这个控件。
zkyEric 2012-05-07
  • 打赏
  • 举报
回复
嗯,控件确实强大。
__________________ 2012-05-07
  • 打赏
  • 举报
回复
觉得metro好丑
还不如win98起码有个3d边缘
ms是真心把别人当傻子了。

Conmajia 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
metro真丑
[/Quote]

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

110,580

社区成员

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

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

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