《30天学通C#》中第一个例子的问题:P30页代码如下:private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
        {            
            if (richTextBox1.Modified)
            {//判断用户是否更改了文本,如果更改了则提示用户进行保存
                if (MessageBox.Show("当前文本己经改变,是否要进行保存?", "保存确认",
                    MessageBoxButtons.YesNo) == DialogResult.OK)
                {
                    string filename = this.Text;//文件名
                    if (filename == "未命名")//如果文件未命名
                    {
                        SaveFileAs();//调用另存为的功能
                        richTextBox1.Clear();//清空
                        this.Text = "未命名";//指定文件名
                        toolStripStatusLabel1.Text = "当前文档:" + this.Text;
                    }
                    else
                    {
                        SaveFile(filename);//调用保存文件方法
                        richTextBox1.Clear();//清空
                        this.Text = "未命名";//指定名称
                        toolStripStatusLabel1.Text = "当前文档:" + this.Text;
                    }
                }
                else
                {
                    richTextBox1.Clear();//直接清空
                    this.Text = "未命名";//指定名称
                    toolStripStatusLabel1.Text = "当前文档:" + this.Text;
                }
            }
            this.Text = "未命名";//如果没有修改,指定未命名
        }
        private void SaveFile(string fileName)
        {
            richTextBox1.SaveFile//调用RichTextBox的SaveFile方法
                (fileName, RichTextBoxStreamType.PlainText);
        }
        private int SaveFileAs()
        {//SaveFileAs将弹出一个保存文件对话框
            SaveFileDialog objSaveFile=new SaveFileDialog();
            int result=0;
            objSaveFile.DefaultExt = "*.txt";//指定扩展名
            objSaveFile.RestoreDirectory = true;
            objSaveFile.Filter = "文本文件(*.txt)|*.txt";//过滤器
            if(objSaveFile.ShowDialog()==//判断用户是否单击了OK
                DialogResult.OK &&objSaveFile.FileName!=string.Empty)
            {
                richTextBox1.SaveFile//调用SaveFile方法保存为纯文本
                    (objSaveFile.FileName, RichTextBoxStreamType.PlainText);
                result = 1;
            }
            return result;//返回保存结果
        }
//注:以上代码来自随书光盘。,当文本改变后如果选择“是”,则调用SaveFileAs()方法,但是运行时却没有弹出,请问问题出在哪儿啊?
另外整形变量“Result”是起什么作用?谢谢各位高手。

解决方案 »

  1.   

    Result返回什么,返回1表示成功,否则是失败。
      

  2.   

    if(objSaveFile.ShowDialog()==//判断用户是否单击了OK
      DialogResult.OK &&objSaveFile.FileName!=string.Empty)
      {这个语句
      

  3.   

    弹出的对话框时YesNo,永远不会等于 DialogResult.OK哦。这样的错误很....
    {//判断用户是否更改了文本,如果更改了则提示用户进行保存
      if (MessageBox.Show("当前文本己经改变,是否要进行保存?", "保存确认",
      MessageBoxButtons.YesNo) == DialogResult.Yes)
      

  4.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace SimpleFormDemo1
    {
        public partial class FrmMain : Form
        {
            public FrmMain()
            {
                InitializeComponent();
            }        private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (richTextBox1.Modified)
                {
                    if (MessageBox.Show("当前文本已经改变,是否要进行保存?", "保存确认",
                        MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        string filename = this.Text;
                        if (filename == "未命名")
                        {
                            SaveFileAs();
                            richTextBox1.Clear();
                            this.Text = "未命名";
                            toolStripStatusLabel1.Text = "当前文档" + this.Text;
                        }
                        else
                        {
                            SaveFile(filename);
                            richTextBox1.Clear();
                            this.Text = "未命名";
                            toolStripStatusLabel1.Text = "当前文档" + this.Text;
                        }
                    }
                    else
                    {
                        richTextBox1.Clear();
                        this.Text = "未命名";
                        toolStripStatusLabel1.Text = "当前文档" + this.Text;
                    }
                }
                this.Text="未命名";
            }        /**********************************************/        private void SaveFile(string filename)
            {
                richTextBox1.SaveFile
                    (filename, RichTextBoxStreamType.PlainText);
            }        /**********************************************/        private int SaveFileAs()
            {
                 SaveFileDialog objSaveFile=new SaveFileDialog();
                 int result=0;
                 objSaveFile.DefaultExt = "*.txt";
                 objSaveFile.RestoreDirectory = true;
                 objSaveFile.Filter = "文本文件(*.txt)|*.txt";
                 if (objSaveFile.ShowDialog() ==
                     DialogResult.Yes && objSaveFile.FileName != string.Empty)
                 {
                     richTextBox1.SaveFile
                         (objSaveFile.FileName, RichTextBoxStreamType.PlainText);
                     result = 1;
                 }
                 return result;                
            }        /**********************************************/    }
    }
    还是不行
      

  5.   

    唉,保存文件的,打开文件夹的,那些对话框返回的都是 DialogResult.OK ,不是Yes 啊
    if (objSaveFile.ShowDialog() == DialogResult.OK) {
       //保存操作。
    }
      

  6.   

    这次是什么问题?
    还是SaveFileDialog没出来?
    FrmMain 的标题是"未命名"吗?
    不是的话直接Save了如果是SaveFileDialog出来了但没能保存,那就是楼上说的问题了
      

  7.   

    问题是SaveFileDialog没出来,就出来了个messagebox,相当郁闷
      

  8.   

    你先用单步跟踪,看看进了SaveFileAs()放法没有