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実際に何が関連しているかを知るために、変更するように依頼します. より賢明な名前は、のようなものopenFileButtonbutton2あるべきだと思いますsaveFileButton

于 2009-07-20T11:17:38.693 に答える