я хочу написать код, в котором после сохранения файла с помощью диалогового окна savefile и последующего его редактирования для сохранения диалогового окна не должно отображаться - PullRequest
0 голосов
/ 20 июля 2009

я могу сохранить файл, используя savefiledialog. как только файл будет сохранен, и если мы отредактируем его, а затем снова сохраним, его следует сохранить, не открывая savefiledialog.Пожалуйста, помогите мне с кодом.

Этот код сделан в 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();
                }
            }
        }

    }
}

1 Ответ

4 голосов
/ 20 июля 2009

SaveFileDialog только позволяет вам предоставлять согласованный пользовательский интерфейс для пользователя, чтобы он мог выбрать местоположение файла. Он не сохраняет актуальный файл для вас. Ты должен сделать это сам.

Вы должны предоставить описанные вами дополнительные функции. Вы должны запомнить имя файла и управлять логикой, которая гласит: «Если этот файл изменен, и у меня уже есть имя файла, я сохраняю его в существующем имени файла.

»

ДОПОЛНИТЕЛЬНО НА ОСНОВЕ НОВОГО КОДА

Вы все равно должны предоставить логику для работы, если вам нужно показать диалог или нет. Когда вы показываете диалог в первый раз, вы хотите сохранить имя файла где-нибудь. Каждый раз, когда вы хотите проверить, есть ли у вас имя файла, и использовать его, в противном случае откройте диалоговое окно.

Возможно, вы захотите реорганизовать часть этого кода, поскольку код для фактического сохранения файла может использоваться в нескольких местах. Вы можете указать, что все в одном методе может вызывать этот метод из каждого места, где вы сохраняете файл.

Наконец, это может сделать чтение кода намного проще, если форме и элементам управления в форме будут присвоены собственные имена. button1, поскольку имя элемента управления недопустимо, и если бы вы были в моей команде, я бы попросил вас изменить его, чтобы мы знали, что на самом деле относится к button1. Я предполагаю, что более разумное имя должно быть что-то вроде openFileButton и button2 должно быть saveFileButton.

...