我有一个面板(Windows窗体),我想禁用面板水平滚动条.我试过这个:
HorizontalScroll.Enabled = false;
Run Code Online (Sandbox Code Playgroud)
但那不行.
我怎样才能做到这一点?
小智 57
尝试以这种方式实现,它将100%工作
panel.HorizontalScroll.Maximum = 0;
panel.AutoScroll = false;
panel.VerticalScroll.Visible = false;
panel.AutoScroll = true;
Run Code Online (Sandbox Code Playgroud)
Sup*_*Oli 20
如果你想亵渎你的代码,你可以试试这个非常"hackish"的解决方案:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool ShowScrollBar(IntPtr hWnd, int wBar, bool bShow);
private enum ScrollBarDirection
{
SB_HORZ = 0,
SB_VERT = 1,
SB_CTL = 2,
SB_BOTH = 3
}
protected override void WndProc(ref System.Windows.Forms.Message m)
{
ShowScrollBar(panel1.Handle, (int)ScrollBarDirection.SB_BOTH, false);
base.WndProc(ref m);
}
Run Code Online (Sandbox Code Playgroud)
我目前正在使用上面的代码来阻止第三方UserControl显示其滚动条.他们没有暴露任何隐藏它们的正确方法.
Dav*_*e M 13
我认为您遇到此问题是因为面板的AutoScroll属性设置为true.我制作了一个测试解决方案(.NET 3.5)并发现了以下内容:
如果你试试这个:
panel.AutoScroll = true;
panel.HorizontalScroll.Enabled = false;
panel.HorizontalScroll.Visible = false;
Run Code Online (Sandbox Code Playgroud)
HorizontalScroll.Enabled和.Visible 不会更改为false(假设面板中有控件导致autoscroll显示水平滚动条).您似乎必须禁用AutoScroll才能手动更改这些属性.
我遇到了同样类型的问题,当AutoScroll = true时出现水平滚动,它只出现在垂直滚动条出现时.我终于想通了我从面板上移除了填充,并且通过向右边填充添加20,它允许垂直滚动条出现而不显示水平滚动条.
| 归档时间: |
|
| 查看次数: |
63998 次 |
| 最近记录: |