Цикл Foreach для создания 100 кнопок, рисующих все кнопки одновременно, чтобы предотвратить мерцание
В моей игре тральщик мне нужно динамически создавать элементы управления, чтобы переключаться между легким - средним - сложным. Позволять'Скажем, ради вопроса сложно состоит из 100 кнопок.
Вот как ясоздаю их:
this.SuspendLayout(); //Creating so many things that I assume it would be faster to suspend and resume.
foreach (string i in playingField)
{
Button button = new Button();
button.Name = i;
button.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
button.Margin = new Padding(0);
button.TabIndex = 0;
button.Location = new System.Drawing.Point(3, 3);
button.Size = new System.Drawing.Size(25, 25);
button.BackgroundImage = blockImage; //##//
button.MouseDown += new System.Windows.Forms.MouseEventHandler(this.GetUnderSide);
button.UseVisualStyleBackColor = false;
minesPanel.Controls.Add(button); //Adding the controls to the container
}
this.ResumeLayout(); //Refer to above. Correct me if I'm wrong please.
Как вы можете видеть, яm создает все элементы управления с помощью цикла for, а затем добавляет их. Это приводит к тому, что каждая кнопка закрашивается по одному за раз. Я тоже пробовалname.Controls.AddRange(arrayButtons)
и это все равно привело к той же проблеме. Индивидуальная роспись.
Мне нужен способ создать все элементы, а затем нарисовать их ВСЕ, как нарисовать один растр с помощьюDoubleBuffered
но, увы, это нетоже не работает.
Кроме того, я попробовал это:
protected override CreateParams CreateParams
{
get
{
// Activate double buffering at the form level. All child controls will be double buffered as well.
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED
return cp;
}
}
Какой вид работ. Работает только при запуске приложения. Однако, учитывая, что я буду изменять размеры сетки и добавлять дополнительные элементы управления во время выполнения, это нереальный вариант.
мне сказали этоЭто так же просто, как использовать методы вGraphics
учебный класс. Проблема в том, что я неНе знаю, с чего начать.
Если бы кто-нибудь мог оказать некоторую помощь в том, чтобы нарисовать все мои элементы управления одновременно, это было бы здорово.