我遇到的问题与我用于C#应用程序的代码有关。当我点击浏览按钮并选择文件时,对话框会打开两次。
private void txt_location_TextChanged(object sender, EventArgs e)
{
string folderPath = "";
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) {
folderPath = folderBrowserDialog1.SelectedPath;
}
}
private void Button21_Click(object sender, EventArgs e)
{
using(var fbd = new FolderBrowserDialog()) {
DialogResult result = fbd.ShowDialog();
if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath)) {
selectedPath = fbd.SelectedPath;
txt_location.Text = selectedPath;
}
}
}
private void bunifuThinButton21_Click_1(object sender, EventArgs e)
{
System.IO.StreamWriter file;
bool isvalid = ValidateInputs();
try {
file = new System.IO.StreamWriter(selectedPath + @ "\dred.txt");
catch (Exception ex) {
MessageBox.Show("Please, Select valid Path..");
return;
}
try {
if (isvalid) {
WriteLines(file);
}
}
catch (Exception ex2) {
MessageBox.Show(ex2.Message);
}
finally {
file.Close();
}
}
}
显然,只打开一次才能让我读取所选文件。这是有效的,但只有在我选择了两次文件后才能使用。
提前感谢您的帮助。
答案 0 :(得分:0)
您正在实例化FolderBrowserDialog并在两个不同的事件上显示: txt_location_TextChanged 和 Button21_Click
你有两个弹出窗口,因为每个弹出窗口分别触发一次。
你应该完全删除事件txt_location_TextChanged,除非你需要它再一次没有弹出FolderBrowserDialog。