C#/winforms 面板左侧有垂直滚动条?

标签 c# .net winforms scrollbar

如何使(自动滚动)垂直滚动条位于 System.Windows.Forms.Panel 的左侧?

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

我尝试通过子类化Panel并在ctor中进行pinvoking,在ctor中设置CreateParams.Style,并通过覆盖CreateParams getter来调整样式。不行。

最佳答案

如果添加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;
        }
    }
}

另请记住,设置 RightToLeft将属性设置为 Yes 就可以满足您的需要,但由于 RightToLeft 属性是 ambient property ,那么面板的所有子项也将继承该值,并且从右到左。我在此答案中分享的内容只是在左侧显示滚动条,而不影响 RightToLeft

关于C#/winforms 面板左侧有垂直滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42278330/

相关文章:

c# - onuserpreferencechanged 挂起 - 处理多种表单和多种 ui 线程

c# - 将任务组合成字典

c# - 如何获得适合存放临时文件的路径?

c# - 如何使用 Azure ACS 保护新的 MVC5 应用程序

c# - 用于匹配地址和可选后缀的正则表达式

winforms - 挂起Windows窗体中的控件事件的最佳方法?

c# - 以编程方式获取 Windows 内部版本号

c# - ASP.NET Core API 不接受可空类型的空值

.net - 无限并行功能

c# - Entity Framework - 如何从联结表中删除数据