200分求两个简单问题答案,有关FlowLayoutPanel

还想懒够 2009-08-30 01:06:52
一直做ASP.NET,许久没有接触WinForm下面的东西,现在正在一个Panel下面画图,出现这样的问题

1. FlowLayoutPanel中没有任何的子控件,如何设置其最大可滚动区域
2. 鼠标滚轮默认不支持,如何让其支持(甚至包括横向滚轮的支持)
...全文
267 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengchengwanli 2010-01-15
  • 打赏
  • 举报
回复
接分
dancingbit 2009-08-30
  • 打赏
  • 举报
回复
对这个属性的关注还是太少了。
还想懒够 2009-08-30
  • 打赏
  • 举报
回复

this.AutoScroll = true;
this.AutoScrollMinSize = new Size(最大宽度, 最大高度);



搞定,谢谢各位
wuyq11 2009-08-30
  • 打赏
  • 举报
回复
flowLayoutPanel1.AutoScroll = true;
Button newButton = new Button();
newButton.Name ="";
newButton.Text = "";
flowLayoutPanel1.Controls.Add(newButton);
可添加控件
参考
whowhen21 2009-08-30
  • 打赏
  • 举报
回复
学习,

顶。。
还想懒够 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 ttojj 的回复:]
引用 14 楼 jjkk168 的回复:
引用 6 楼 ttojj 的回复:
有個簡單的辦法

1.拖2個panel:panel_a,panel_b
2.在panel_b中畫好你要的東西,並且設置SIZE
3.panel_a.controls.add(panel_b);
  panel_b.dock=fill
  panel_a設置成自動帶滾動条~~
4.大功告成,给分!!!


如果只是利用了添加控件的方案,那往指定最大的位置增加一个没文字的Label是最快速的方案



如果你是寫控件,最簡單的方法就是這麼做!!

另外:
    如果是寫帶容器的控件,應該把裏面的item寫成另外的控件,!
    容器繼承接口IComponent,然後才完成
    樓主在設計上就存在問題~~~
[/Quote]

我的控件里面只是一个自画的图.....:)
TTOJJ 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jjkk168 的回复:]
引用 6 楼 ttojj 的回复:
有個簡單的辦法

1.拖2個panel:panel_a,panel_b
2.在panel_b中畫好你要的東西,並且設置SIZE
3.panel_a.controls.add(panel_b);
  panel_b.dock=fill
  panel_a設置成自動帶滾動条~~
4.大功告成,给分!!!


如果只是利用了添加控件的方案,那往指定最大的位置增加一个没文字的Label是最快速的方案
[/Quote]


如果你是寫控件,最簡單的方法就是這麼做!!

另外:
如果是寫帶容器的控件,應該把裏面的item寫成另外的控件,!
容器繼承接口IComponent,然後才完成
樓主在設計上就存在問題~~~
还想懒够 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cuike519 的回复:]
2. 鼠标滚轮默认不支持,如何让其支持(甚至包括横向滚轮的支持)

你可以在FlowLayoutPanel的click和MouseEnter事件里让FlowLayoutPanel获得焦点。

FlowLayoutPanel1.Focus();
[/Quote]

这招管用,谢谢

只剩下如何让其自动出现滚动条的问题了
dancingbit 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ttojj 的回复:]
引用 8 楼 dancingbit 的回复:
想要滚动条也容易,FlowLayoutPanel设AutoScroll为true,new一个label,Location为(Width+1,Height+1)。

太噁心了~~~~~~
[/Quote]
简单,实用,虽然如LZ所说有点别扭。
既然电脑没有那么聪明,顺着它的思路来也就是了。
还想懒够 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ttojj 的回复:]
有個簡單的辦法

1.拖2個panel:panel_a,panel_b
2.在panel_b中畫好你要的東西,並且設置SIZE
3.panel_a.controls.add(panel_b);
  panel_b.dock=fill
  panel_a設置成自動帶滾動条~~
4.大功告成,给分!!!
[/Quote]

如果只是利用了添加控件的方案,那往指定最大的位置增加一个没文字的Label是最快速的方案
TTOJJ 2009-08-30
  • 打赏
  • 举报
回复
按我說的做,標準做法!!
还想懒够 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dancingbit 的回复:]
就不知道FlowLayoutPanel中,控件是不是可以任意放置。
[/Quote]

是可以的,我本来就是放一个没有文字的Label放在Panel里面,通过设置其Location,这样是达到了效果,但就是觉着别扭
TTOJJ 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dancingbit 的回复:]
想要滚动条也容易,FlowLayoutPanel设AutoScroll为true,new一个label,Location为(Width+1,Height+1)。
[/Quote]
太噁心了~~~~~~
Lezen 2009-08-30
  • 打赏
  • 举报
回复
加个panl
dancingbit 2009-08-30
  • 打赏
  • 举报
回复
就不知道FlowLayoutPanel中,控件是不是可以任意放置。
dancingbit 2009-08-30
  • 打赏
  • 举报
回复
想要滚动条也容易,FlowLayoutPanel设AutoScroll为true,new一个label,Location为(Width+1,Height+1)。
TTOJJ 2009-08-30
  • 打赏
  • 举报
回复
别说不行哦~~绝对ok的!!!
TTOJJ 2009-08-30
  • 打赏
  • 举报
回复
有個簡單的辦法

1.拖2個panel:panel_a,panel_b
2.在panel_b中畫好你要的東西,並且設置SIZE
3.panel_a.controls.add(panel_b);
panel_b.dock=fill
panel_a設置成自動帶滾動条~~
4.大功告成,给分!!!
还想懒够 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ttojj 的回复:]
ScrollableControl!!!

Panel本身就可以滾動,只要設置屬性就可以了
不知道你說的最大可滾動區域是什麽意思???

反正和滾動有關的內容都在ScrollableControl中~
[/Quote]

最大原因是我的Panel中并没有任何子控件,里面的内容全部是重载OnPaint画出来的,如果里面有子控件,那还好设置,但里面如果没有任何子控件,那滚动条我是死活弄不出来了。

哪位同仁知道该如何操作的,麻烦告知一声,万分感谢!
cuike519 2009-08-30
  • 打赏
  • 举报
回复
2. 鼠标滚轮默认不支持,如何让其支持(甚至包括横向滚轮的支持)

你可以在FlowLayoutPanel的click和MouseEnter事件里让FlowLayoutPanel获得焦点。

FlowLayoutPanel1.Focus();
加载更多回复(2)

110,534

社区成员

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

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

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