0

我可以使用 savefiledialog 保存文件。保存文件后,如果我们对其进行编辑然后再次保存,则应在不打开 savefiledialog 的情况下保存它。请帮助我编写代码。

此代码是在 Windows 窗体中的 Visual Studio 2005 中制作的。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace win
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                StreamReader str = new StreamReader(openFileDialog1.FileName);
                textBox1.Text = str.ReadToEnd();
                str.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {

                {
                    StreamWriter wtr = new StreamWriter(saveFileDialog1.FileName);
                    wtr.Write(textBox1.Text);
                    wtr.Close();
                }
            }
        }

    }
}
4

1 回答 1

4

SaveFileDialog 只允许您向用户提供一致的用户界面,以便他们选择文件的位置。它不会为您保存实际文件。你必须自己做。

您必须提供您描述的附加功能。你必须记下文件名,并且你已经管理了这样的逻辑:如果这个文件被修改并且我已经有了一个文件名,那么我保存到现有的文件名。

基于新代码的附加内容

如果您需要显示对话框,您仍然必须提供逻辑来解决。当您第一次显示对话框时,您希望将文件名存储在某处。以后每次你想检查你是否已经有一个文件名并使用它,否则显示对话框。

您可能还想重构其中的一些代码,因为实际保存文件的代码可能在多个地方使用。您可以将所有内容放在一个方法中,可以从保存文件的每个位置调用该方法。

最后,如果为表单和表单上的控件指定了正确的名称,那么阅读代码可能会更容易。button1因为控件的名称是不可接受的,如果您在我的团队中,我会要求您更改它,以便我们知道button1实际相关的内容。我认为更明智的名称应该是openFileButton并且button2应该是saveFileButton

于 2009-07-20T11:17:38.693 回答