日期:2014-05-18  浏览次数:20880 次

求助 C#编辑记事本的新建功能
我现在 在做一个仿WINDOWS记事本的程序,菜单中有个新建功能,我的思路是这样: 点击新建后先判断文本框中是否为空,不为空 ,就选择路径先以TXT格式保存,然后在初始化文本框,其中保存那块不知道怎么做;还有我不清楚文本框应该做成 TextBox 还是 RichTextBox 我用的是TextBox,希望高手们 帮我解决下 小弟先谢过了
我写的代码如下:
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
  {
  //把当前文本框的文本赋给str1
  string str1 = textBox1.Text;
  //判断文本框是否为空,不为空的话先提示是否保存然后在初始化文本框textbox1,
  if (str1 != null)
  {
  SaveFileDialog savefiledialog1 = new SaveFileDialog();
  savefiledialog1.InitialDirectory = "D:\\Program Files";
  savefiledialog1.Filter = "text file(*.txt)|*.txt|All files(*.*)|*.*";
  savefiledialog1.FilterIndex = 1;
  savefiledialog1.RestoreDirectory = true;
  if (savefiledialog1.ShowDialog() == DialogResult.OK)
  {
  //MessageBox.Show("保存文件:" + savefiledialog1.FileName);
  // textBox1.SaveFile(savefiledialog1.FileName);
   
  }
  textBox1.Clear();
  this.Text = "无标题-记事本";  
  }  
  }


------解决方案--------------------
你需要新建一个bool型变量,记录你的文本是否被修改:
private bool textboxChanged;
再用一个currentFileName 保存文件名。

再在TextBox1的TextChanged里面写:
textboxChanged = true;


你应该先写好另存功能
C# code
private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
{
    FileSaveDialog dlg = new FileSaveDialog();
    if (dlg.ShowDialog() == DialogResult.OK)
    {
        currentFileName = dlg.FileName;
        保存ToolStripMenuItem_Click(this, new EventArgs());
    }
}