单击消息框的确定时如何打开保存文件对话框

时间:2010-08-26 05:06:15

标签: c# desktop-application

我想在用户单击显示的消息框的确定时提示用户输入保存文件对话框。我怎么能这样做......

4 个答案:

答案 0 :(得分:6)

在按钮的事件处理程序中,使用以下代码。

DialogResult messageResult = MessageBox.Show("Save this file?", "Save", MessageBoxButtons.OKCancel);
if (messageResult == DialogResult.OK)
{
    using (var dialog = new System.Windows.Forms.SaveFileDialog())
    {
        dialog.DefaultExt = "*.txt";
        dialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
        DialogResult result = dialog.ShowDialog();
        if (result == DialogResult.OK)
        {
            string filename = dialog.FileName;
            // Save here
        }
    }
}

修改:如果您想直接获得 FileStream ,可以使用SaveFileDialog.OpenFile()。如果以部分信任方式运行应用程序,则需要较少的权限。

答案 1 :(得分:0)

你可以谷歌这个。如果您遇到点击事件的问题。我猜你正在使用visual studio,只需双击设计图面上的按钮,然后在你去的处理程序中编写你的代码。

http://www.jonasjohn.de/snippets/csharp/save-file-dialog-example.htm

MessageBox.Show()返回DialogResult

  DialogResult result1 = MessageBox.Show("Is Dot Net Perls awesome?",
            "Important Question",
            MessageBoxButtons.OK);

  if (result1 == DialogResult.OK)
  { //Show SaveFileDialog }

答案 2 :(得分:0)

private void button1_Click(object sender, EventArgs e)
    {           
        textBox1.Enabled=false;

            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "Excell File |*.xlsx;*,xlsx";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string extn = Path.GetExtension(ofd.FileName);
                if (extn.Equals(".xls") || extn.Equals(".xlsx"))
                {
                    filename = ofd.FileName;

                    if (filename != "")
                    {
                        try
                        {
                            string excelfilename = Path.GetFileName(filename);                               
                        }
                        catch (Exception ew)
                        {
                            MessageBox.Show("Errror:" + ew.ToString());
                        }
                    }
                }
            }

答案 3 :(得分:-1)

我得到的答案就是我要求的答案

          MessageBox.Show("Save The Current File");
            if (Convert.ToBoolean( DialogResult.OK ))
            {
                SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                saveFileDialog1.InitialDirectory = @"C:\";                  
                saveFileDialog1.RestoreDirectory = true;

                if (saveFileDialog1.ShowDialog() == DialogResult.OK)                    
                    string s= saveFileDialog1.FileName;                    
            }