Программа работает только со второго клика по кнопке - 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();
}
}Решение задачи: «Программа работает только со второго клика по кнопке»
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);
}
}
}