Не могу решить лабу. На форме кнопки и поля появляются только 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);
            }
        }

Ответы (0 шт):