C# 如何使面板的标准滚动条消失?

C# 如何使面板的标准滚动条消失?,c#,winforms,scrollbar,C#,Winforms,Scrollbar,在我的表单上,我有一个面板,上面有不同数量的按钮。它们都排成一行,并且都设置为停靠顶部。由于我不喜欢附带的滚动条的设计,也不喜欢改变颜色,所以我创建了自己的滚动条,效果非常好。问题是,要使其工作,AutoScroll必须设置为true。现在,当内容的总高度超过面板的高度时,标准滚动条会自动出现,我无法摆脱它 这是我的问题。如何使滚动条消失 我所尝试的: 我试了各种组合 第一个例子: this.panel_Playlists.AutoScroll = false; this.panel_Playl

在我的表单上,我有一个面板,上面有不同数量的按钮。它们都排成一行,并且都设置为停靠顶部。由于我不喜欢附带的滚动条的设计,也不喜欢改变颜色,所以我创建了自己的滚动条,效果非常好。问题是,要使其工作,AutoScroll必须设置为true。现在,当内容的总高度超过面板的高度时,标准滚动条会自动出现,我无法摆脱它

这是我的问题。如何使滚动条消失

我所尝试的:

我试了各种组合

第一个例子:

this.panel_Playlists.AutoScroll = false;
this.panel_Playlists.HorizontalScroll.Enabled = false;
this.panel_Playlists.HorizontalScroll.Visible = false;
this.panel_Playlists.VerticalScroll.Enabled = false;
this.panel_Playlists.VerticalScroll.Visible = false;
this.panel_Playlists.AutoScroll = true;
第二个例子:

public enum ScrollBarDirection
{
    SB_HORZ = 0,
    SB_VERT = 1,
    SB_CTL = 2,
    SB_BOTH = 3
}

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool ShowScrollBar(IntPtr hWnd, int wBar, bool bShow);

protected override void WndProc(ref Message m)
{
    ShowScrollBar(panel_Playlists.Handle, (int)ScrollBarDirection.SB_BOTH, false);
    base.WndProc(ref m);
}
不管我怎么做,都没用。滚动条会闪烁或永久可见

请求快速帮助


LG

您可以将sbar覆盖在系统的上吗?不可以。我的工具栏设置为右侧停靠,面板设置为填充,以确保动态大小控制。您仍然可以尝试。设置它的left=parent.width-bar.width等。我通过使用嵌套面板解决了这个问题,这非常尴尬。