private void button2_Click(object sender, EventArgs e)
{
SaveFileDialog Sdialog = new SaveFileDialog();
Sdialog.ShowDialog();
Sdialog.FileOk += Sdialog_FileOk;
}
void Sdialog_FileOk(object sender, CancelEventArgs e)
{
try
{
StreamWriter FileProtocol = new StreamWriter(((SaveFileDialog)sender).FileName);
FileProtocol.Write(textBox3.Text);
FileProtocol.Close();
MessageBox.Show("File is write ok");
}
catch (Exception)
{
MessageBox.Show("Unknown Error. File is not write");
}
}为什么事件FileOk不能工作?
发布于 2013-10-07 18:50:27
因为您需要在调用ShowDialog()之前将事件连接起来。当您调用ShowDialog()时,将停止该线程上的处理,而则等待响应。
所以,代替这个:
Sdialog.ShowDialog();
Sdialog.FileOk += Sdialog_FileOk;这样做:
Sdialog.FileOk += Sdialog_FileOk;
Sdialog.ShowDialog();要使用DialogResult简化您的工作流程,只需执行以下操作:
if (Sdialog.ShowDialog() == DialogResult.OK)
{
try
{
StreamWriter FileProtocol =
new StreamWriter(Sdialog.FileName);
FileProtocol.Write(textBox3.Text);
FileProtocol.Close();
MessageBox.Show("File is write ok");
}
catch (Exception)
{
MessageBox.Show("Unknown Error. File is not write");
}
}还:,而不是这样做的:
StreamWriter FileProtocol =
new StreamWriter(Sdialog.FileName);
FileProtocol.Write(textBox3.Text);
FileProtocol.Close();不如把它简化成这样:
File.AppendAllText(Sdialog.FileName, textBox3.Text);好处有两倍:
https://stackoverflow.com/questions/19232331
复制相似问题