winform中FlowLayoutPanel使用

事已至 2018-01-03 10:57:15
winform中FlowLayoutPanel种有个label控件,当label超出FlowLayoutPanel的大小的时候,会自动显示滚动条,但是这个滚动条总是在最上面,有没有方法让这个滚动条每次输入之后都在最底部
...全文
1134 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
this.flowLayoutPanel1.VerticalScroll.Value = this.flowLayoutPanel1.VerticalScroll.Maximum;
this.flowLayoutPanel1.VerticalScroll.Value = this.flowLayoutPanel1.VerticalScroll.Maximum;
执行2遍,应该还是跟焦点问题有关
事已至 2018-01-03
  • 打赏
  • 举报
回复
好像确实跑到最下面了,但是滚动条没有跑到最下面
事已至 2018-01-03
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
自动的,这个不用你设置
试了tabIndex=3的时候不行,然后设置tabindex=0的时候显示在图上的位置,有时候会往上点,
  • 打赏
  • 举报
回复
自动的,这个不用你设置
事已至 2018-01-03
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
            for (var i = 0; i < 100; i++)
            {
                Button bt = new Button();
                bt.Text = i.ToString();
                this.flowLayoutPanel1.Controls.Add(bt);
            }
            this.flowLayoutPanel1.VerticalScroll.Value = this.flowLayoutPanel1.VerticalScroll.Maximum;
注意尤其重要一点,flowLayoutPanel1的TableIndex设置一个较低的值,就是不要让焦点在这个pannel上,否则设置了无效,因为winform默认是显示在焦点上的
那这个的Maximum需要设置多少
  • 打赏
  • 举报
回复
            for (var i = 0; i < 100; i++)
            {
                Button bt = new Button();
                bt.Text = i.ToString();
                this.flowLayoutPanel1.Controls.Add(bt);
            }
            this.flowLayoutPanel1.VerticalScroll.Value = this.flowLayoutPanel1.VerticalScroll.Maximum;
注意尤其重要一点,flowLayoutPanel1的TableIndex设置一个较低的值,就是不要让焦点在这个pannel上,否则设置了无效,因为winform默认是显示在焦点上的
事已至 2018-01-03
  • 打赏
  • 举报
回复
来大神解决啊,
事已至 2018-01-03
  • 打赏
  • 举报
回复
设置value也试了
事已至 2018-01-03
  • 打赏
  • 举报
回复
试了ScrollControlIntoView和AutoScrollPosition都不靠谱
事已至 2018-01-03
  • 打赏
  • 举报
回复
引用 9 楼 starfd 的回复:
this.flowLayoutPanel1.VerticalScroll.Value = this.flowLayoutPanel1.VerticalScroll.Maximum;
this.flowLayoutPanel1.VerticalScroll.Value = this.flowLayoutPanel1.VerticalScroll.Maximum;
执行2遍,应该还是跟焦点问题有关
谢谢解决了,
FlowLayoutPanel 一些应用程序需要一个布局可随窗体大小的调整或其内容大小的改变而自动进行适当排列的窗体。在需要动态布局并且不希望在代码显式处理 Layout 事件时,可考虑使用布局面板。 FlowLayoutPanel是.NET Framework的新增控件。顾名思义,面板可以采用Web窗体的方式给Windows窗体布局。FlowLayoutPanel是一个容器,允许以垂直或水平的方式放置包含的控件。除了放置控件之外,还可以剪辑控件。放置的方向使用FlowDirection属性和FlowDirection枚举来设置。WrapContents属性确定在重新设置窗体的大小时,控件是放在下一行、下一列,还是剪辑控件。 FlowLayoutPanel 按特定的流方向排列其内容:水平或垂直。其内容可从一行换到下一行,或者从一列换到下一列。另一种情况是不换行,而是将其内容截掉。 相信大家在做WinForm项目的时候,要对大量的控件进行排序(位置摆放),这个容器肯定最受欢迎,但很遗憾的是,此容器本身虽支持Dock和Anchor属性,但不支持放入此容器内的控件的Dock和Anchor属性(自动调整宽度),也就说,但窗体伸缩,FlowLayoutPanel容器自身可以缩放,但是里面的控件就没那么幸运了,不支持自动缩放,这样就必须写方法来触发新的事件来调整控件的大小,这样就会导致窗体的闪烁(重绘)。 借助ManagedSpy工具,我们可以看到此容器里面的器件的结构,我们可以在Form1里面添加一个事件SizeChanged 对容器里面每个器件重新给它大小 就行了。 附件:FlowLayoutPanel的Demo

111,103

社区成员

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

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

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