У меня в проекте две формы (простая игра для детей). Первый — это меню «Пуск», а второй — игра. Теперь, когда я нажимаю «Новая игра», я хочу, чтобы вторая форма открывалась внутри первой. Я сделал это, используя следующий код:
private Form activeForm = null;
private void openChildForm(Form childForm1)
{
if (activeForm!=null)
{
activeForm.Close();
}
activeForm = childForm1;
childForm1.TopLevel = false;
childForm1.FormBorderStyle = FormBorderStyle.None;
childForm1.Dock = DockStyle.Fill;
panel1.Controls.Add(childForm1);
panel1.Tag = childForm1;
childForm1.BringToFront();
childForm1.Show();
}
Теперь вторая форма открывается внутри первой, но работает некорректно. Во второй форме у меня есть окно с изображением, которое должно двигаться, когда пользователь нажимает одну из клавиш со стрелками. Но он не будет двигаться.
Любые предложения, что мне делать?
P.S. Я новичок, и это школьный проект. Мой учитель показал нам только один способ открытия формы:
Form2 objForm2 = new Form2();
objForm2.Show();
но так как это очень уродливый метод выполнения работы, я хотел сделать его лучше.
Я использую Visual Studio 2019
Show()
? И если вы хотите сделать этоpanel1.Controls.Add(childForm1);
, вы должны создать пользовательский элемент управления, а не форму. - person Zer0   schedule 07.04.2020