2013-10-16 17 views
0

我是C#的新手,我正在通過在用戶單擊表單上放置一個點來進行試驗。我用的640×480使用表單的AutoScrollMinSize屬性還的最大尺寸的300×200的形式工作,我設置的最大尺寸:添加滾動事件以重新繪製表格

this.AutoScrollMinSize = new Size(640, 480); 

我能夠把點上的形式,但點一旦我滾出可見區域就會消失。由於我手動創建了滾動區域,我正在尋找一種添加滾動事件處理函數的方法,該函數將在發生滾動時調用this.Invalidate()重新繪製表單。任何意見是極大的讚賞。

以下是我有:

public Form1() 
{ 
    InitializeComponent(); 
    this.AutoScrollMinSize = new Size(640, 480); 

    vScrollBar vScrollBar1 = new VScrollBar(); 
    vScrollBar1.Scroll += new ScrollEventHandler(this.vScrollBar1_Scroll); 
} 

這裏是如何我調用事件處理程序:

private void vScrollBar1_Scroll(Object sender, ScrollEventArgs e) 
{ 
    this.Invalidate(); 
} 

我從微軟的文檔這個例子,但繪圖仍然是當我垂直滾動時消失,所以我知道表單不重新繪製。

+0

你能再發表更多代碼? – Szymon

+0

'Form'應該有一個可以使用的'Scroll'事件。 –

回答

0

你不需要那個VScrollBar控件(它永遠不會添加到表單中)。

只是覆蓋形式的OnScroll方法:

protected override void OnScroll(ScrollEventArgs se) { 
    base.OnScroll(se); 
    this.Invalidate(); 
}