我已經用C#寫了一個俄羅斯方塊遊戲。我使用下面的代碼在picturebox中繪製圖形。picturebox.refresh slow問題
graphics g
g = pictureBox1.CreateGraphics();
我正在通過計時器代碼清理每一秒鐘,以繪製下一步的形狀。 我的問題是:它正在緩慢運行picturebox.refresh()命令和顯示失真,我該怎麼辦?
我試過下面的函數。但是,它不工作。我有同樣的問題。
public void EnableDoubleBuffering()
{
// Set the value of the double-buffering style bits to true.
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint,
true);
this.UpdateStyles();
}
總是使用Paint事件繪製,切勿使用CreateGraphics()。調用pb的Invalidate()方法來觸發重繪。這也自動啓用雙緩衝。您嘗試的方法在窗體上啓用雙緩衝,而不是圖片框。 PB已經有雙緩衝打開。爲什麼它很慢是不可想象的。 –
@Hans Passant-首先,感謝你的有趣之處。正如我所提到的,俄羅斯方塊遊戲的展示並不流利。所以,刷新不夠好。究竟需要我做什麼? – Selo
使用一個分析器來找出你寫的代碼很慢。 –