首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭saveFileDialog

关闭saveFileDialog
EN

Stack Overflow用户
提问于 2012-03-06 08:41:00
回答 1查看 4.3K关注 0票数 2

我在关闭saveFileDialog时遇到问题。当我单击“取消”时,窗口再次出现。下面是我的代码:

代码语言:javascript
复制
        private void SaveAsItem_Click(object sender, EventArgs e)
    {
        saveFileDialog1.FileName = "untitled";
        saveFileDialog1.Filter = "Text (*.txt)|*.txt";
        saveFileDialog1.ShowDialog();
        System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(saveFileDialog1.FileName);
        if (saveFileDialog1.ShowDialog()==DialogResult.Cancel)
        {
            richTextBox1.Text = "CANCEL";
            issaved = false;
        }
        else
        {
            issaved = true;
            SaveFile.WriteLine(richTextBox1.Text);
        }
        SaveFile.Close();
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-06 08:44:18

您将调用saveFileDialog1.ShowDialog()两次,一次用于显示结果,另一次用于获取结果。你只需要调用它一次。删除写着“saveFileDialog1.ShowDialog();本身,您已经在if条件中这样做了”的代码行。

编辑:您还需要将所有FileStream操作移动到else块中,以便在删除该行后使其正常工作。以下是我编辑后的版本:

代码语言:javascript
复制
    private void SaveAsItem_Click(object sender, EventArgs e)
{
    saveFileDialog1.FileName = "untitled";
    saveFileDialog1.Filter = "Text (*.txt)|*.txt";
    if (saveFileDialog1.ShowDialog()==DialogResult.Cancel)
    {
        richTextBox1.Text = "CANCEL";
        issaved = false;
    }
    else
    {
        System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(saveFileDialog1.FileName);
        issaved = true;
        SaveFile.WriteLine(richTextBox1.Text);
        SaveFile.Close();
    }
}

您也可以完全跳过FileStream,只执行一个File.WriteAlltext(saveFileDialog1.FileName, richTextBox1.Text)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9576295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档