2012-06-02 34 views
0

我需要更改c#winform的滚动条宽度FlowLayoutPanel,但找不到方法。c#flowlayourpanel滚动宽度

任何人都知道吗?

+0

滚动条宽度是一个系统设置。 –

+0

@HansPassant如果它的父控件支持,那么滚动条宽度或高度可以设置..我已经知道datagridview支持..并检查写一个答案.. flowlayoutpanel还支持 – sihirbazzz

回答

0

简单地设置垂直滚动像这样:

flowLayoutPanel1.Controls.OfType<VScrollBar>().First().Width = 20; //or any int value as you want 

和水平:

flowLayoutPanel1.Controls.OfType<HScrollBar>().First().Height = 15; 

,但这个片段之前,你可能需要确保有表示这种控制滚动条或不..

我以前没有使用flowLayoutpanel ..所以我不知道你为什么在winforms中使用这个控件..

但给你控制显示上的控制或不滚动条的逻辑/想法..

我用datagridview的这个逻辑..

1-)I,简单地计算出“显示总行高“和”总显示列宽度“

2-)如果总行高度大于当前datagridview高度,则意味着将出现滚动条。对于其他滚动条也是如此(列宽大于dgv宽度)

但是,如果你确定有一个scrollba r显示在你的控制上,那么上面的代码行将根据你的需要设置宽度或高度。

+1

'flowLayoutPanel1.Controls'集合将不会有一个VScrollBar控件在任何时间点,除非你明确地将其添加到FlowLayoutPanel .. – dotNETbeginner

+0

@dotNETbeginner正如我在我的回答中所提到的,我没有在我的项目中使用flowLayoutpanel ..而且我在datagridview滚动条上的经验在需要时自动实现与我的描述相同的检查。所以当需要的时候会有滚动条。并且当不需要滚动条时,它将是“空”;) – sihirbazzz