注意:这个问题的答案已经过时了.
所以,我有一个保存对话框:
...
SaveFileDialog sfd = new SaveFileDialog();
sfd.ShowDialog();
// SaveFileDialog.[Whatever] - Init code basically.
if (sfd.DialogResult == DialogResult.OK)
{
// Definitely do something.
Console.Print("File selected.");
}
if (sfd.DialogResult == DialogResult.Abort)
{
// Maybe the opposite of the above?
Console.Print("File selection Cancelled");
}
if ( ... ) { }
and so on.
Run Code Online (Sandbox Code Playgroud)
但...... SaveFileDialog.DialogResult已被事件所取代......
并且唯一可用的事件是SaveFileDialog.FileOK,SaveFileDialog.Disposed和SaveFileDialog.HelpRequest.
如何在用户单击" 取消"而不是"完成"(单击" 保存")时触发事件(或移动到一行代码)?
我希望根据用户是取消还是成功选择要保存的文件位置进行分支.
与工作DialogResult不会被弃用,以及那些事件是不是新的东西.
要执行取消操作,您可以创建SaveFileDialog并配置它,您可以调用ShowDialog然后检查结果:
var sfd= new SaveFileDialog();
//Other initializations ...
//sfd.Filter= "Text files (*.txt)|*.txt|All files (*.*)|*.*";
//sfd.DefaultExt = "txt";
if(sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
MessageBox.Show("Save Clicked");
//?Do something for save
}
else
{
MessageBox.Show("Cancel Clicked");
//Do something for cancel
}
Run Code Online (Sandbox Code Playgroud)
例如,您可以使用FileName属性访问所选文件MessageBox.Show(sfd.FileName);