Не могу решить лабу. На форме кнопки и поля появляются только 2 раза (должны появляться неограниченно)
Полный текст задачи: Разработать программу, динамически порождающую или поле ввода (при нажатии на окне левой кнопкой мыши), или кнопку (при нажатии на окне правой кнопкой мыши). Все элементы располагаются наискосок, начиная с левого верхнего угла окна. Реализовать обработчик события изменения размера окна, в котором удалить все порожденные элементы.
Программа работает и избавляется от объектов, но порождает кнопки и поля только дважды (первый раз при запуске и второй при правом или левом клике). Я не могу найти способа сделать так, чтобы они призывались неограниченное количество раз. EventHandler в данном случае не работает.
Похожие задачи в Интернете были, но там кнопки создавались в зависимости от координат мыши(https://www.cyberforum.ru/windows-forms/thread1806504.html), а в другой положение вообще решалось на рандом, в третьей условие было совсем странным. Их код практически не подходит.
Вот мой ужас:
TextBox textbox1 = new TextBox();
Button button1 = new Button();
Button button2 = new Button();
TextBox textbox2 = new TextBox();
public Form1()
{
InitializeComponent();
this.MouseClick += Form1_MouseClick;
button1.Location = new Point(20, 20);
button1.Text = "button";
Controls.Add(button1);
textbox1.Location = new Point(0, 0);
Controls.Add(textbox1);
}
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
textbox2.Location = new Point(textbox1.Location.X + 10, textbox1.Location.Y + 10 + textbox1.Height + 10);
Controls.Add(textbox2);
}
if (e.Button == MouseButtons.Right)
{
button2.Location = new Point(button1.Location.X + 10, button1.Location.Y + 10 + button1.Height + 10);
button2.Text = "button";
Controls.Add(button2);
}
}