winform 中的 panel如何才能让其只出现竖直方向的滚动条,无论任何时候都不显示横向滚动条?
如果有其他解决方案也可以告诉我
先谢谢了

解决方案 »

  1.   

    在 panel 的 Resize 里面写
    里面被包含控件的宽度不要超过 (panel 宽度 - 滚动条宽度)
      

  2.   

    可能我的意思没有表达清楚
      本来panel里面包含的控件宽度已经超过了panel的面板,如果将其AutoScroll 设置为True 则横竖都要出现滚动条。我现在想实现类似QQ好友面板那样,只出现竖滚动条,不出现横滚动条。如果要看完包含内的内容,只有横向拖动窗体大小。谢谢楼上的。还有其他办法?
      

  3.   

    让其AutoScroll设为False,然后再画个纵向滚动条控件,然后自己写代码来通过滚动条控制panel的位置
      

  4.   

    可行,问题是我panel里面放了很多竖直放置的按钮(上百个)。在滚动滚动条的时候就需要逐个去设置位置,出现了假死现象。我可能算法还有问题
    求相关代码示例? 
      

  5.   

    你不要一个一个去设置啊,那样太累了,你在外面再套个panel,把外面的panel的AutoScroll设为False,把里面那个panel设为足够大的大小,然后你只需要移动里面这个panel就行了.
      

  6.   

    一个PANEL放上百个BUTTON?游戏程序?
    如果不想出现水平滚动条,就只能先保证容器内控件范围不超过PANEL宽度
      

  7.   

    panel的AutoScroll还是设置为True,将panel里的控件宽度都拉成和panel的宽度一样(如果你的控件时动态加入的,可以再panel的ControlAdded事件中让添加的控件Width等于panel的Width),然后设置panel里面所有控件的Anchor属性为设置为Left, Right。
      

  8.   

    给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);
            不显示横滚动条
      

  9.   

    panel1.VerticalScroll.Visible = true;//竖的
    panel1.HorizontalScroll.Visible = false;//横的