2017-02-16 102 views
1

如何让(自动滚动)垂直滚动条位于System.Windows.Forms.Panel的左侧?C#/ winforms面板左侧有垂直滚动条?

注意:我尝试修改窗口样式ala文本框question,它不起作用。

我试图通过子类Panel和禁止在ctor中设置CreateParams.Style在ctor中,并通过重写CreateParams getter来调整样式。不行。

+0

[文本框与垂直滚动条左边(的可能的复制http://stackoverflow.com/questions/ 14402428/textbox-with-vertical-scroll-on-the-left-side) –

+0

不是一个dup,已经试过了,无济于事。 – CoderBrien

+0

他们喜欢这个世界的一些地方,比如中东国家。他们从右至左阅读他们的字母表。将面板的RightToLeft属性设置为是。 –

回答

4

如果添加WS_EX_LEFTSCROLLBAR扩展样式来控制它显示在左侧滚动条:

using System.Windows.Forms; 
public class ExPanel : Panel 
{ 
    private const int WS_EX_LEFTSCROLLBAR = 0x00004000; 
    protected override CreateParams CreateParams 
    { 
     get 
     { 
      var cp = base.CreateParams; 
      cp.ExStyle = cp.ExStyle | WS_EX_LEFTSCROLLBAR; 
      return cp; 
     } 
    } 
} 
+0

你确定吗?正如我在帖子中所说的那样,我尝试了这一点,但这对我没有任何作用。 – CoderBrien

+0

将该类复制并粘贴到您的解决方案并构建解决方案。然后将'ExPanel'的一个实例拖放到你的'',将'AutoScroll'设置为true,然后通过添加一些内容使滚动条可见。运行该应用程序并查看结果。 –

+0

也不要错过什么,也说我的评论。 –