2017-01-11 58 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

滾動條仍閃爍。看起來代碼沒有做任何事情。 –