2009-08-22 60 views

回答

3

您可以將一個PictureBox(無論需要多大尺寸)放到AutoScroll設置爲True的Panel上,然後使用Graphics對象將所需的所有內容一次性繪製到PictureBox上。但是,如果繪圖表面的整體尺寸非常大,則此方法不實用(因爲這意味着需要一個巨大的PictureBox和相應龐大的Bitmap,這會消耗大量的內存)。如果是這種情況,最好是創建自己的可滾動用戶控件(水平和垂直),並只渲染控件的Paint事件中整個表面的可見部分。

第一種方法寫起來會更容易和更快,但可能會消耗太多的內存。第二種方法需要您做更多的工作,但會最大限度地減少內存消耗。

0

有一個scrollviewcontainer控件,但默認情況下不在工具箱上。我會做一個圖片框的上述方法,並將其嵌入此控件。此外,您可以使用SetStyle啓用雙緩衝以防止閃爍。另一種選擇是構建一個類來處理雙緩衝(繪製到位圖對象並使用CreateGraphics推出結果)。那裏有一些很好的例子。

相關問題