winform 中的 panel如何才能让其只出现竖直方向的滚动条?

十七郎 2009-08-21 11:31:44
winform 中的 panel如何才能让其只出现竖直方向的滚动条,无论任何时候都不显示横向滚动条?
如果有其他解决方案也可以告诉我
先谢谢了
...全文
2748 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanop 2012-01-05
  • 打赏
  • 举报
回复
panel1.VerticalScroll.Visible = true;//竖的
panel1.HorizontalScroll.Visible = false;//横的
zgke 2009-08-22
  • 打赏
  • 举报
回复 2
给Panel加一个Paint事件...写

void panel1_Paint(object sender, PaintEventArgs e)
{
Control _Control =(Control)sender;
ShowScrollBar(_Control.Handle, 0, 0);
}

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int ShowScrollBar(IntPtr hWnd, int bar, int show);




不显示横滚动条
SL007315 2009-08-22
  • 打赏
  • 举报
回复
panel的AutoScroll还是设置为True,将panel里的控件宽度都拉成和panel的宽度一样(如果你的控件时动态加入的,可以再panel的ControlAdded事件中让添加的控件Width等于panel的Width),然后设置panel里面所有控件的Anchor属性为设置为Left, Right。
dylike 2009-08-22
  • 打赏
  • 举报
回复
一个PANEL放上百个BUTTON?游戏程序?
如果不想出现水平滚动条,就只能先保证容器内控件范围不超过PANEL宽度
zhouzangood 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lijunfeng 的回复:]
让其AutoScroll设为False,然后再画个纵向滚动条控件,然后自己写代码来通过滚动条控制panel的位置
[/Quote]
画???
我也想知道
lijunfeng 2009-08-22
  • 打赏
  • 举报
回复
你不要一个一个去设置啊,那样太累了,你在外面再套个panel,把外面的panel的AutoScroll设为False,把里面那个panel设为足够大的大小,然后你只需要移动里面这个panel就行了.
十七郎 2009-08-22
  • 打赏
  • 举报
回复
可行,问题是我panel里面放了很多竖直放置的按钮(上百个)。在滚动滚动条的时候就需要逐个去设置位置,出现了假死现象。我可能算法还有问题
求相关代码示例?
lijunfeng 2009-08-22
  • 打赏
  • 举报
回复
让其AutoScroll设为False,然后再画个纵向滚动条控件,然后自己写代码来通过滚动条控制panel的位置
十七郎 2009-08-22
  • 打赏
  • 举报
回复
可能我的意思没有表达清楚
本来panel里面包含的控件宽度已经超过了panel的面板,如果将其AutoScroll 设置为True 则横竖都要出现滚动条。我现在想实现类似QQ好友面板那样,只出现竖滚动条,不出现横滚动条。如果要看完包含内的内容,只有横向拖动窗体大小。

谢谢楼上的。还有其他办法?
threenewbee 2009-08-22
  • 打赏
  • 举报
回复
在 panel 的 Resize 里面写
里面被包含控件的宽度不要超过 (panel 宽度 - 滚动条宽度)

110,533

社区成员

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

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

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