2017-01-11 57 views
0

我想动态地改变包含我的winforms应用程序中的按钮使用鼠标滚轮的视图。我基本上使用下面的代码来改变面板的位置,但是无论何时使用鼠标滚轮滚动,都可以看到滚动条。当我改变位置时,它们会将烧瓶/闪烁视为可见。有没有办法阻止滚动条出现?c#使用没有滚动条的滚轮滚动

location -= 40; 
this.pnl.VerticalScroll.Value = location; 
this.pnl.AutoScrollPosition = new Point(0, location); 

回答

0

你不能简单地从winforms中改变它,因为它是由Windows自动显示的。有这个issue.I一个不那么伟大的解决方案也有类似的要求,我以前是这样的:

[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_VERT, false); 
    base.WndProc(ref m); 
} 
  1. 导入的Win32 DLL user32.dll
  2. 调用ShowScrollBar方法将其与所需的参数如上例
+0

如何导入user32.dll? –

+0

将代码复制到您的班级 – ViVi

+0

滚动条仍闪烁。看起来代码没有做任何事情。 –