【发布时间】:2016-03-10 08:29:28
【问题描述】:
我正在创建一个文本编辑器,但我卡在 SaveFileDialog 窗口打开 并要求覆盖当前打开的文件。
我在 SO 上看到了所有类似的问题,但没有一个能够帮助我。我什至尝试过这个问题的代码:“Saving file without dialog”Saving file without dialog
我的程序遇到了 FileName 问题。
这是我目前的代码
namespace Text_Editor
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
}
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
open.Title = "Open File";
open.FileName = "";
if (open.ShowDialog() == DialogResult.OK)
{
this.Text = string.Format("{0}", Path.GetFileNameWithoutExtension(open.FileName));
StreamReader reader = new StreamReader(open.FileName);
richTextBox1.Text = reader.ReadToEnd();
reader.Close();
}
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
save.Title = "Save File";
save.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (save.ShowDialog() == DialogResult.OK)
{
StreamWriter writer = new StreamWriter(save.FileName);
writer.Write(richTextBox1.Text);
writer.Close();
}
}
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog saving = new SaveFileDialog();
saving.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
saving.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
saving.Title = "Save As";
saving.FileName = "Untitled";
if (saving.ShowDialog() == DialogResult.OK)
{
StreamWriter writing = new StreamWriter(saving.FileName);
writing.Write(richTextBox1.Text);
writing.Close();
}
}
}
}
所以我的问题是如何修改我的代码,以便我可以保存当前打开的文件,而无需每次都打开 SaveFileDialog 框?
我明白这与我正在调用 .ShowDialog 的事实有关,但我不知道如何修改它。
【问题讨论】:
-
那就别叫了……
-
那么您希望用户在文本框中输入文件名还是什么?
-
如果你知道文件的路径,就使用它,不要显示对话框。
-
是的,我知道我不能调用它,但我不知道如何修改我的代码以免调用它。如果用户有一个打开的文本文件并且他们修改它,它应该只在点击保存时保存。不会打开询问必须保存在哪里的对话框。
-
Alex 我想我明白你在说什么。请你详细说明
标签: c# text-editor savefiledialog