如何使(自动滚动)垂直滚动条位于 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/