Ваш if
блок неверен, потому что прежде, в цикле, вы увеличиваете i
, пока он не достигнет cnt
.И когда оно достигнуто, тело цикла for
не запускается, поэтому условие if
никогда не выполняется.
Я думаю, что вы, возможно, захотите изменить свой блок if
на try-catch
, и, вероятно, это был поток, который вы хотели получить:
try
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
configuration.AppSettings.Settings.Add("Path" + i, textBox2.Text);
configuration.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
dt.Rows.Add(textBox2.Text);
this.dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show("Add is not complete.\n" + exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Этот код попытается запуститьи если он получит какие-либо ошибки, он зафиксирует их и отобразит в MessageBox
.
ОБНОВЛЕНИЕ
Я думаю, что ваша проблема не только в цикле, но ичто после нажатия кнопки у вас есть цикл, который добавляет ваше textBox2.Text
к значению Path[i]
каждый раз, и этот текст совпадает с тем, как он * НЕ ** изменяется в цикле.Я не уверен, как вы хотите установить значения, но вы также должны понимать, что в вашем цикле кажется, что вы просто добавляете одно и то же значение к каждому пути при событии нажатия кнопки.
Это означает, что если вы хотитеЧтобы добавить совершенно новый путь к настройкам, вы можете сделать это следующим образом:
var appConf = System.Configuration.ConfigurationManager.AppSettings;
var count = appConf.Count;
try
{
// As OP commented this line fixed the problem
value = null;
Configuration configuration = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
configuration.AppSettings.Settings.Add("Path" + count, textBox2.Text);
configuration.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
dt.Rows.Add(textBox2.Text);
this.dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show("Add is not complete.\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}