Программа работает только со второго клика по кнопке - C#

Формулировка задачи:

Если нажму один раз на кнопку, то ничего не происходит. А вот если второй раз, то всё работает отлично. В чём проблема?
private void button2_Click(object sender, EventArgs e)
        {
            
            if (textBox1.Text.Equals("") && textBox2.Text.Equals(""))
                MessageBox.Show("Заполните поля 'Логин' и 'Пароль' ", "Ошибка");
            else 
                try
                {
                    var sw = new System.IO.StreamWriter("D:\\Reg\\" + textBox1.Text + "\\login.ID");
                    sw.Write(textBox1.Text + "\n" + textBox2.Text);
                    sw.Close();
                    this.Close();
                }
                catch (System.IO.DirectoryNotFoundException)
                {
                    System.IO.Directory.CreateDirectory("D:\\Reg\\" + textBox1.Text);
                    var sw = new System.IO.StreamWriter("D:\\Reg\\" + textBox1.Text + "\\login.ID");
                    sw.Write(textBox1.Text + '\n' + textBox2.Text);
                    sw.Close();
                   
                }
            
        }

Код к задаче: «Программа работает только со второго клика по кнопке - C#»

textual
private void button1_Click(object sender, EventArgs e)
        { 
            if (string.IsNullOrWhiteSpace(textBox1.Text) || string.IsNullOrWhiteSpace(textBox2.Text))
            {
                MessageBox.Show("Заполните поля 'Логин' и 'Пароль' ", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                var regDirectory = new DirectoryInfo(Directory.GetCurrentDirectory()); // Directory.GetCurrentDirectory() заменить на "D:\\Reg\\"
 
                if (!regDirectory.Exists) regDirectory.Create(); //Создаём папку
 
                var userDirectory = new DirectoryInfo(Path.Combine(regDirectory.FullName, textBox1.Text));
 
                if (!userDirectory.Exists) userDirectory.Create(); // Создаём папку пользователя
 
                using (var writer = new StreamWriter(Path.Combine(userDirectory.FullName, "login.ID")))
                {
                    writer.Write(textBox1.Text + Environment.NewLine + textBox2.Text);
                }
            }
        }

10   голосов, оценка 4.300 из 5


СОХРАНИТЬ ССЫЛКУ