⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 能实现文本编辑的功能
💻 CS
📖 第 1 页 / 共 2 页
字号:
        //
        private void menuEditUndo_Click(object sender, EventArgs e)
        {
            richTextBox1.Undo();
        }

        //
        //重做
        //
        private void menuEditRedo_Click(object sender, EventArgs e)
        {
            richTextBox1.Redo();
        }

        //
        //退出
        //
        private void menuFileExit_Click(object sender, EventArgs e)
        {
            if (docHasChanged)
            {
                string strask1;
                if (docName != "")
                    strask1 = "是否保存: " + docName+" ?";
                else
                    strask1 = "是否保存 未命名.txt ?";
                DialogResult asksave = MessageBox.Show(strask1, "退出", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
                if (asksave == DialogResult.Yes)
                {
                    menuFileSave_Click(sender, e);
                    Application.Exit();
                }
                else if (asksave == DialogResult.No)
                {
                    Application.Exit();
                }
                else if (asksave == DialogResult.Cancel)
                    return;
            }
            else if (!docHasChanged)
            {
                Application.Exit();
            }
        }

        //
        //新建
        //
        private void menuFileNew_Click(object sender, EventArgs e)
        {
            if (docHasChanged)
            {
                string strask1;
                if (docName != "")
                    strask1 = "是否保存: " + docName + " ?";
                else
                    strask1 = "是否保存 未命名.txt ?";
                DialogResult asksave =MessageBox.Show(strask1, "退出", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
                if (asksave == DialogResult.Yes)
                {
                    menuFileSave_Click(sender, e);
                    this.Text = "TextEditor - 未命名.txt";
                    docName = "未命名.txt";
                    richTextBox1.Text = "";
                    docHasChanged = true;
                    docHasData = false;
                    docHasSaved = false;
                }
                else if (asksave == DialogResult.No)
                {
                    this.Text = "TextEditor - 未命名.txt";
                    docName = "未命名.txt";
                    richTextBox1.Text = "";
                    docHasChanged = true;
                    docHasData = false;
                    docHasSaved = false;
                }
            }
            else if (docHasSaved || (!docHasData))
            {
                this.Text = "TextEditor - 未命名.txt";
                docName = "未命名.txt";
                richTextBox1.Text = "";
                docHasChanged = true;
                docHasSaved = false;
                docHasData = false;
            }
        }

        //
        //颜色
        //
        private void meunFormatColor_Click(object sender, EventArgs e)
        {
            ColorDialog color = new ColorDialog();
            if (color.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionColor = color.Color;
            docHasChanged = true;
        }

        //
        //字体
        //
        private void meunFormatFont_Click(object sender, EventArgs e)
        {
            FontDialog font = new FontDialog();
            if (font.ShowDialog() == DialogResult.OK)
                richTextBox1.SelectionFont = font.Font;
            docHasChanged = true;
        }

        //
        //另存为
        //
        private void menuFileSaveAs_Click(object sender, EventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();
            save.Filter = "Text files(*.txt)|*.txt|C# source(*.cs)|*.cs|C++ source(*.cpp)|*.cpp|C source(*.c" +
                ")|*.c|All files(*.*)|*.*";
            save.InitialDirectory = "C:/";
            save.Title = "保存为";
            if (save.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.SaveFile(save.FileName, RichTextBoxStreamType.PlainText);
                docName = save.FileName;
            }
            docHasData = true;
            docHasChanged = false;
            this.Text = "TextEditor - " + docName;
            docHasSaved = true;
        }

        //
        //保存
        //
        private void menuFileSave_Click(object sender, EventArgs e)
        {
            if(docHasData)
            {
                FileStream file = new FileStream(docName, FileMode.Create, FileAccess.ReadWrite);
                StreamWriter writer = new StreamWriter(file, System.Text.Encoding.GetEncoding("GB2312"));
                writer.Write(richTextBox1.Text);
                docHasChanged = false;
                writer.Close();
                file.Close();
                this.Text = "TextEditor - " + docName;
                docHasSaved = true;
            }
            else if ((!docHasData) || (!docHasSaved)||docHasChanged)
                menuFileSaveAs_Click(sender, e);
        }

        //
        //帮助主题
        //
        private void menuHelpTheme_Click(object sender, EventArgs e)
        {
            new Help().Show();
        }

        //
        //关于
        //
        private void menuHelpAbout_Click(object sender, EventArgs e)
        {
            MessageBox.Show("作者: ZCPP\n\n日期: 2007年6月3日\n\n欢迎使用!请提意见: sparksharp@163.com", "关于TextEditor", MessageBoxButtons.OK, MessageBoxIcon.None);
        }

        //
        //删除
        //
        private void menuEditDelete_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectedText = "";
        }

        //
        //查找
        //
        private void menuEditFind_Click(object sender, EventArgs e)
        {
            int len = 0 ;
            InputBoxResult result = InputBox.Show("请输入要查找的内容:", "查找", "", new InputBoxValidatingHandler(inputBox_Validating));
            if(result.Text!=null)
                len = result.Text.Length;
            int n;
            if (len > richTextBox1.Text.Length)
                MessageBox.Show("你输入的查找内容长度大于文件长度!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else
            {
                //int l = richTextBox1.GetLineFromCharIndex(n);
                if (result.OK)
                {
                    n = richTextBox1.Find(result.Text, 0);
                    if (n != -1)
                    {
                        richTextBox1.Select(n, len);
                        richTextBox1.ScrollToCaret();
                    }
                    else
                        MessageBox.Show("没有找到匹配的内容!", "查找完毕", MessageBoxButtons.OK, MessageBoxIcon.None); 
                }
            }
        }

        //
        //替换
        //
        private void menuEditReplace_Click(object sender, EventArgs e)
        {
            int len = 0;
            RepInputBoxResult result = RepInputBox.Show("目标内容:", "替换", "", new RepInputBoxValidatingHandler(repinputBox_Validating));
            if (result.Text != null)
                len = result.Text.Length;
            int n;
            if (len > richTextBox1.Text.Length)
                MessageBox.Show("你输入的查找内容长度大于文件长度!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else
            {
                //int l = richTextBox1.GetLineFromCharIndex(n);
                if (result.OK)
                {
                    n = richTextBox1.Find(result.Text, 0);
                    if (n != -1)
                    {
                        richTextBox1.Select(n, len);
                        richTextBox1.SelectedText = result.Text2;
                        richTextBox1.ScrollToCaret();
                    }
                    else
                        MessageBox.Show("没有找到匹配的内容!", "查找完毕", MessageBoxButtons.OK, MessageBoxIcon.None); 
                }
            }
        }

        //
        //不现实工具条的文字
        //
        private void menuDontShowToolTxt_Click(object sender, EventArgs e)
        {
            menuDontShowToolTxt.Checked = true;
            menuShowToolTxt.Checked = false;
            toolBarNew.Text = "";
            toolBarOpen.Text = "";
            toolBarSave.Text = "";
            toolBarUndo.Text = "";
            toolBarSelectAll.Text = "";
            toolBarCut.Text = "";
            toolBarCopy.Text = "";
            toolBarPaste.Text = "";
            toolBarDelete.Text = "";
            toolBarFind.Text = "";
            toolBarReplace.Text = "";
            toolBarFont.Text = "";
            toolBarColor.Text = "";
            toolBarHelp.Text = "";
            toolBarAbout.Text = "";
            toolBar1.Hide();
            toolBar1.Show();
            Form1_ClientSizeChanged(sender, e);
        }

        //
        //显示工具条按钮的文字
        //
        private void menuShowToolTxt_Click(object sender, EventArgs e)
        {
            richTextBox1_Click(sender, e);
            menuDontShowToolTxt.Checked = false;
            menuShowToolTxt.Checked = true;
            toolBarNew.Text = "新建";
            toolBarOpen.Text = "打开";
            toolBarSave.Text = "保存";
            toolBarUndo.Text = "撤消";
            toolBarSelectAll.Text = "全选";
            toolBarCut.Text = "剪切";
            toolBarCopy.Text = "复制";
            toolBarPaste.Text = "粘贴";
            toolBarDelete.Text = "删除";
            toolBarFind.Text = "查找";
            toolBarReplace.Text = "替换";
            toolBarFont.Text = "字体";
            toolBarColor.Text = "颜色";
            toolBarHelp.Text = "帮助";
            toolBarAbout.Text = "关于";
            toolBar1.Hide();
            toolBar1.Show();
            Form1_ClientSizeChanged(sender, e);
        }

        //
        //自动换行
        //
        private void menuAutoNewLine_Click(object sender, EventArgs e)
        {
            if (!autoNewLine)
            {
                richTextBox1.WordWrap = true;
                menuAutoNewLine.Checked = true;
                autoNewLine = true;
            }
            else
            {
                richTextBox1.WordWrap = false;
                menuAutoNewLine.Checked = false;
                autoNewLine = false;
            }
            richTextBox1_Click(sender, e);
        }

        #endregion

        #region 其他

        //状态栏显示时间处理
        private void timer1_Tick(object sender, EventArgs e)
        {
            statusBarTime.Text = "当前时间: " + DateTime.Now.ToString();
        }

        //InputBox - 查找框
        private void inputBox_Validating(object sender, InputBoxValidatingArgs e)
        {
            if (e.Text.Trim().Length == 0)
            {
                e.Cancel = true;
                e.Message = "Required";
            }
        }

        //RepInputBox - 替换框
        private void repinputBox_Validating(object sender, RepInputBoxValidatingArgs e)
        {
            //if (e.Text.Trim().Length == 0)
            //{
            //    e.Cancel = true;
            //    e.Message = "Required";
            //}
        }

        #endregion

        #region 在文本框中的鼠标右键菜单

        private void rightBtnCut_Click(object sender, EventArgs e)
        {
            menuEditCut_Click(sender, e);
        }

        private void rightBtnCopy_Click(object sender, EventArgs e)
        {
            menuEditCopy_Click(sender, e);
        }

        private void rightBtnPaste_Click(object sender, EventArgs e)
        {
            menuEditPaste_Click(sender, e);
        }

        private void rightBtnDelete_Click(object sender, EventArgs e)
        {
            menuEditDelete_Click(sender, e);
        }

        private void rightBtnSelAll_Click(object sender, EventArgs e)
        {
            menuEditSelectAll_Click(sender, e);
        }

        private void rightBtnDate_Click(object sender, EventArgs e)
        {
            menuEditDate_Click(sender, e);
        }

        #endregion

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -