Я делаю простую игру, которая (для основной части) состоит из панели с сеткой из 32 PictureBoxes внутри, каждая с BackgroundImage. Вы нажимаете на «плитку», и она вскрывает изображение. Моя проблема заключается в том, что когда Form Loads, я вижу ее рисование. Я вижу панель, затем пустую PictureBoxes, а затем она заполняет PictureBoxes с помощью BackgroundImages.Visual Basic PictureBox Flicker
Я обратился DoubleBuffer Истина в форме, и я также добавил следующее:
Private Sub UseDoubleBuffer()
Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or ControlStyles.DoubleBuffer, True)
Me.UpdateStyles()
End Sub
который я называю, когда форма нагрузок. Я не уверен, что еще я могу сделать? Я хочу, чтобы он просто «выскочил» на экран. Почему DoubleBuffer не работает? Нужно ли мне вручную вводить код? Я пытался избежать этого, потому что, очевидно, проще просто перетащить в форму, но если понадобится, я сделаю это.
Я не могу опубликовать скриншоты, по-видимому, поскольку мой представитель еще недостаточно высок, но поверьте мне, он выглядит отвратительным, и я хочу сделать это настолько гладким, насколько это возможно. Есть идеи?
Я думаю, что это был дан ответ здесь: [Как отключить обновление формы в Windows Forms] [1] [1]: http://stackoverflow.com/questions/126876/how-do-i-disable-update-a-form-in-windows-формы – dadkind
Изображение, присвоенное свойству BackgroundImage, слишком велико, изменение размера его в соответствии с маленькими ящиками занимает слишком много времени. Таким образом, вы видите, что их рисуют один за другим. Создайте лучшую с программой рисования, которая подходит. Если он по-прежнему занимает слишком много времени (он не должен), вы можете использовать [этот хак] (http://stackoverflow.com/a/3718648/17034). –