2009-07-20 1 views
0

savefiledialogを使用してファイルを保存できます。ファイルを保存してから編集してからもう一度保存すると、savefiledialog.pleaseを開いてコードを保存せずに保存する必要があります。私はsavefileダイアログでファイルを保存した後に再度編集してsavedialogボックスを表示しないコードを書きたい

このコードは、Visual Studio 2005のWindowsフォームで作成されています。

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(); 
       } 
      } 
     } 

    } 
} 
+0

あなたが使用している言語/ UIツールキットのような詳細情報は役に立ちます –

+0

私はそれがSaveFileDialogオブジェクトを持っていると仮定しています。私は間違っているかもしれません。 –

答えて

4

SaveFileDialogは、それらだけがファイルの場所を選択するためにユーザーに一貫したユーザインタフェースを提供することを許可します。それはあなたのために作動ファイルを保存しません。あなたはそれを自分でする必要があります。

あなたが説明する追加の機能を提供する必要があります。あなたはファイル名を書き留めておかなければなりません。そして、このファイルが変更されていて、ファイル名があるなら、既存のファイル名に保存します。

NEW CODEに基づいて追加

あなたはまだあなたがダイアログかどうかを表示する必要がある場合に動作するようにロジックを提供する必要があります。初めてダイアログを表示するときに、ファイル名をどこかに保存したいとします。あなたが既にファイル名を持っているかどうかをチェックし、それを使用したい場合は、それ以降はダイアログを表示します。

実際にファイルを保存するコードはいくつかの場所で使用できるため、そのコードの一部をリファクタリングすることもできます。 1つのメソッドで、ファイルを保存している各場所からそのメソッドを呼び出すことができます。

最後に、フォームのフォームとコントロールに適切な名前が付いていれば、コードをもっと簡単に読むことができます。コントロールの名前としてbutton1は受け入れられません。あなたが私のチームにいたら、それを変更するように頼んでいますので、button1が実際に関係するものを知っているでしょう。私はより賢明な名前はopenFileButtonbutton2のようなものでなければならないと仮定するとsaveFileButtonする必要があります。

+0

私は使用しようとしているコードの質問を更新しました。 –

関連する問題