Как добавить диалоговое окно «Сохранить файл» с помощью C # - PullRequest
4 голосов
/ 14 сентября 2011

Мне нужно реализовать что-то похожее на Блокнот опция сохранения. Предполагая, что у меня есть кнопка, расположенная рядом с RichTextBox, я хочу, чтобы при нажатии этой кнопки открывалось диалоговое окно, которое будет похоже на то, которое появляется, когда Сохранить как щелкнул. Я хотел бы сохранить содержимое RichTextBox в текстовом формате, введя имя файла в поле Диалог сохранения .

Ответы [ 6 ]

9 голосов
/ 14 сентября 2011
private void Save_As_Click(object sender, EventArgs e)
{
  SaveFileDialog _SD = new SaveFileDialog(); 
  _SD.Filter = "Text File (*.txt)|*.txt|Show All Files (*.*)|*.*";
  _SD.FileName = "Untitled"; 
  _SD.Title = "Save As";
  if (__SD.ShowDialog() == DialogResult.OK)
  {
   RTBox1.SaveFile(__SD.FileName, RichTextBoxStreamType.UnicodePlainText);
  }
}
7 голосов
/ 14 сентября 2011

Для WPF вы должны использовать это SaveFileDialog .

var dialog = new Microsoft.Win32.SaveFileDialog();
dialog.Filter = "Rich Text File (*.rtf)|*.rtf|All Files (*.*)|*.*";
dialog.FileName = "Filename.rtf"; //set initial filename
if (dialog.ShowDialog() == true)
{
    using (var stream = dialog.OpenFile())
    {
       var range = new TextRange(myRichTextBox.Document.ContentStart,
                                 myRichTextBox.Document.ContentEnd);
       range.Save(stream, DataFormats.Rtf);
    }
}
2 голосов
/ 18 февраля 2014

Это работает для текстовых файлов и было протестировано в WPF.

var dialog = new Microsoft.Win32.SaveFileDialog();
dialog.Filter = "Text documents (.txt)|*.txt|All Files (*.*)|*.*"; 
dialog.FileName = "Filename.txt"; 
if (dialog.ShowDialog() == true)
{                
    File.WriteAllText(dialog.FileName, MyTextBox.Text);
}
1 голос
/ 14 сентября 2011
SaveFileDialog sfDialog = new SaveFileDialog();
sfDialog.ShowDialog();
OutputStream ostream = new FileOutputStream(new File(sfDialog.FileName));
WorkBook.write(ostream);
ostream.close();
1 голос
/ 14 сентября 2011

неправильно прочитал вопрос - ответ Рэя действителен для OP

Это работает только в Windows Forms.

Вам следует взглянуть на класс SaveFileDialog: http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog.aspx

И сохраните файл, используя что-то вроде этого (см. здесь ):

rtf.SaveFile(dialog.FileName);
0 голосов
/ 14 сентября 2011

Существует компонент SaveFileDialog, который вы можете использовать, прочитайте здесь , чтобы узнать, как он работает, и рабочий образец.

...