using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class NoteBook : Form
    {
        public NoteBook()
        {
            InitializeComponent();
        }
        string fileName;
       public  string strText;
       bool bloo;
        //public int s;
        //private void NoteBook_Resize(object sender, EventArgs e)
        //{
        //    richTextBox1.Top = menuStrip1.Height  +toolStrip1.Height ;
        //    richTextBox1.Height = NoteBook.-statusStrip1.Height - menuStrip1.Height - toolStrip1.Height;
        //}
 
        private void Tool_Click(object sender, EventArgs e)
        {
            if (Tool.Checked)
            {
                toolStrip1.Visible = true;
            }
            else toolStrip1.Visible = false;
        }
        private void Toolnow_Click(object sender, EventArgs e)
        {
            if (Toolnow.Checked)
            { statusStrip1.Visible = true; }
            else statusStrip1.Visible = false;
        }
        private void Toolnext_Click(object sender, EventArgs e)
        {
            if (Toolnext.Checked)
            { richTextBox1.WordWrap = true; }
            else richTextBox1.WordWrap = false;
        }
        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        private void ToolFont_Click(object sender, EventArgs e)
        {  //方法一:直接利用属性。
            //fontDialog1.ShowDialog();
            //richTextBox1.SelectionFont = fontDialog1.Font;
            //方法二:运用创建对象思想实现此功能。
            FontDialog fd = new FontDialog();
            fd.Font = richTextBox1.SelectionFont;
            DialogResult jg = fd.ShowDialog();
            if (jg == DialogResult.OK)
            { richTextBox1.SelectionFont = fd.Font; }
 
        }
        private void 颜色CToolStripMenuItem_Click(object sender, EventArgs e)
        {  //法一:
            //    colorDialog1.ShowDialog();
            //    richTextBox1.SelectionColor = colorDialog1.Color;
            //法二:
            ColorDialog fd = new ColorDialog();
            fd.Color = richTextBox1.SelectionColor;
            DialogResult jg = fd.ShowDialog();
            if (jg == DialogResult.OK)
            { richTextBox1.SelectionColor = fd.Color; }
        }
        private void xToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (richTextBox1.Text != "")
            {
                DialogResult s = MessageBox.Show("文件内容已修改,是否保存或继续编写?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
                if (s == DialogResult.Cancel) return;
                if (s == DialogResult.Yes)
                {
                    保存SToolStripMenuItem.PerformClick();
                    richTextBox1.Text = "";
                }
            }
        }
        private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog savel = new SaveFileDialog();
            savel.Filter = "(文本文件)*.txt|*.txt|RTF文件(*.rtf)|*.rtf";
            DialogResult sl = savel.ShowDialog();
            if (sl == DialogResult.OK)
            {
                fileName = savel.FileName;
                string s = Path.GetExtension(savel.FileName).ToLower();
                switch (s)
                {
                    case ".txt":
                        richTextBox1.SaveFile(savel.FileName, RichTextBoxStreamType.PlainText);
                        richTextBox1.Text = "";
                        break;
                    case ".rtf":
                        richTextBox1.SaveFile(savel.FileName, RichTextBoxStreamType.RichText);
                        richTextBox1.Text = "";
                        break;
                    default:
                        MessageBox.Show("不支持该类文件类型!", "提示");
                        fileName = "";
                        break;
                }
            }
        }
        private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                //另存为ToolStripMenuItem_Click(sender, e);
                另存为ToolStripMenuItem.PerformClick();
            }
            else
            {
                string s = Path.GetExtension(fileName).ToLower();
                switch (s)
                {
                    case ".txt":
                        richTextBox1.SaveFile(fileName, RichTextBoxStreamType.PlainText);
                        break;
                    case ".rtf":
                        richTextBox1.SaveFile(fileName, RichTextBoxStreamType.RichText);
                        break;
                }
                richTextBox1.Text = "";
            }
        }
        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();
            open.Filter = "文本文件(*.txt)|*.txt|RTF文件(*.rtf)|*.rtf";
            DialogResult op = open.ShowDialog();
            if (op == DialogResult.OK)
            {
                //fileName = open.Title;
                string s = Path.GetExtension(open.FileName).ToLower();
                switch (s)
                {
                    case ".txt":
                        richTextBox1.LoadFile(open.FileName, RichTextBoxStreamType.PlainText);
                      
                        break;
                    case ".rtf":
                        richTextBox1.LoadFile(open.FileName, RichTextBoxStreamType.RichText);
                     
                        break;
                    default:
                        MessageBox.Show("不支持该类文件类型!", "提示");
                        fileName = "";
                        break;
                }
                bloo = false;
            }
        }
        private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (richTextBox1.CanUndo == true)
            {
                richTextBox1.Undo();
                richTextBox1.ClearUndo();
           
            }
        }
        private void 恢复ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (richTextBox1.CanRedo == true)
            {
                richTextBox1.Redo();
                richTextBox1.ClearUndo();
            }
        }
        private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Cut();
        }
        private void 粘贴ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            richTextBox1.Paste();
        }
        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (richTextBox1.SelectedText != "")
                richTextBox1.SelectedText = "";
        }
        private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectAll();
        }
        private void 时间日期ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //string s;
            //s = richTextBox1.Text;
            //richTextBox1.Text = s + DateTime.Now.ToString();
            richTextBox1.AppendText(DateTime.Now.ToString());
        }
        private void 编辑EToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }
        private void 查找ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            findRecover find = new findRecover();
            strText = richTextBox1.Text;
            find.Show(this);
            find.label2.Enabled = false;
            find.button2.Enabled = false;
            find.textBox2.Enabled = false;
        }
        private void 替换ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            findRecover find = new findRecover();
            find.Show(this);
        }
        private void 关于AToolStripMenuItem_Click(object sender, EventArgs e)
        {
            About  about = new About();
            about.Show(this);

        }
        private void NoteBook_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (richTextBox1.Text != "" & bloo==true)
            {
                DialogResult s = MessageBox.Show("文件内容已修改,是否保存?", "提示",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (s == DialogResult.Yes)
                {
                    另存为ToolStripMenuItem.PerformClick();
                    richTextBox1.Text = "";
                    Application.Exit();
                }
               
            }
            else Application.Exit();
        }
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            xToolStripMenuItem_Click(sender, e);
            xToolStripMenuItem.PerformClick();
        }
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            //打开OToolStripMenuItem_Click(sender, e);
            打开OToolStripMenuItem.PerformClick();
        }
        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            保存SToolStripMenuItem_Click(sender, e);
            保存SToolStripMenuItem.PerformClick();
        }
        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            剪切ToolStripMenuItem.PerformClick();
        }
     
        private void toolStripButton7_Click(object sender, EventArgs e)
        {
            关于AToolStripMenuItem.PerformClick();
        }
        private void toolStripButton5_Click(object sender, EventArgs e)
        {
            复制ToolStripMenuItem.PerformClick();
        }
        private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Copy();
        }
        private void toolStripButton6_Click(object sender, EventArgs e)
        {
            粘贴ToolStripMenuItem1.PerformClick();
        }
        private void NoteBook_Load(object sender, EventArgs e)
        {
        }
    
    }
}