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

📄 text.cs

📁 C#做的一个文本编辑器
💻 CS
📖 第 1 页 / 共 3 页
字号:
			mystatusBar.Panels[0].Text="就绪";
		}

		private void saveAsMenuItem_Click(object sender, System.EventArgs e)//另存为
		{
			mystatusBar.Panels[0].Text="文件另存为作业中";
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			SaveFileDialog mysaveFileDialog=new SaveFileDialog();
			mysaveFileDialog.Title="保存文件";
			mysaveFileDialog.InitialDirectory="c:\\";
			mysaveFileDialog.Filter="文本文件(*.txt)|*.txt|其他文件(*.*)|*.*";
			if(mysaveFileDialog.ShowDialog()==DialogResult.OK)
			{
				string s_FileName=mysaveFileDialog.FileName;
				richTextBox1.SaveFile(s_FileName,RichTextBoxStreamType.PlainText);
				string fileName = s_FileName.Remove(0,s_FileName.LastIndexOf("\\")+1);
				tabPage1.Name = fileName;
				tabPage1.Text = fileName;
			}//注意存取文件类型应一致。
			mystatusBar.Panels[0].Text="就绪";
		}
		private void previewItem_Click(object sender, System.EventArgs e)//打印预览
		{
			mystatusBar.Panels[0].Text="打印预览中";
			printPreviewDialog1.Document=printDocument1;
			printPreviewDialog1.ShowDialog();
			mystatusBar.Panels[0].Text="就绪";
		}
		private void printMenuItem_Click(object sender, System.EventArgs e)//打印
		{
			mystatusBar.Panels[0].Text="打印工作中";
			printDialog1.Document=printDocument1;
			if(printDialog1.ShowDialog(this)==DialogResult.OK)
				printDocument1.Print();
			mystatusBar.Panels[0].Text="就绪";
		}
		private void printDocument1_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)//打印开始前
		{
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页	
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			printFont=richTextBox1.Font;//打印使用的字体
			streamToPrint=new StringReader(richTextBox1.Text);//打印richTextBox1.Text
		}

		private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)//打印实现
		{
			float linesPerPage=0;//记录每页最大行数
			float yPos=0;//记录将要打印的一行数据在垂直方向的位置
			int count=0;//记录每页已打印行数
			float leftMargin=e.MarginBounds.Left;//左边距
			float topMargin=e.MarginBounds.Top;//顶边距
			string line=null;//从RichTextBox中读取一段字符将存到line中
			//每页最大行数=一页纸打印区域的高度/一行字符的高度
			linesPerPage=e.MarginBounds.Height/printFont.GetHeight(e.Graphics);
			//如果当前页已打印行数小于每页最大行数而且读出数据不为null,继续打印
			while(count<linesPerPage&&((line=streamToPrint.ReadLine())!=null))
			{	//yPos为要打印的当前行在垂直方向上的位置
				yPos=topMargin+(count*printFont.GetHeight(e.Graphics));
				e.Graphics.DrawString(line,printFont,Brushes.Black,
					leftMargin,yPos,new StringFormat());//打印
				count++;//已打印行数加1
			}
			if(line!=null)//是否需要打印下一页
				e.HasMorePages=true;//需要打印下一页
			else
				e.HasMorePages=false;//不需要打印下一页
		}

		private void printDocument1_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e)//打印结束后
		{
			if(streamToPrint!=null)
				streamToPrint.Close();//释放不用的资源
		}

		private void exitMenuItem_Click(object sender, System.EventArgs e)//退出
		{
			mystatusBar.Panels[0].Text="退出";
			CheckIfExit();
			mystatusBar.Panels[0].Text="就绪";
		}
		public void CheckIfExit()//退出确认
		{
			DialogResult dr=MessageBox.Show("确定退出程序?","退出程序",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
			if(dr==DialogResult.Yes)
			{
				Application.Exit();
			}
		}
//*********************************************************文件菜单区完***************************************

//*********************************************************编辑菜单区*****************************************
		private void copyMenuItem_Click(object sender, System.EventArgs e)//复制
		{
			mystatusBar.Panels[0].Text="文本作业复制中";
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			if(richTextBox1.SelectedText=="")
				MessageBox.Show("未选中任何文本!");
			else
			    richTextBox1.Copy();
			mystatusBar.Panels[0].Text="就绪";
		}

		private void cutMenuItem_Click(object sender, System.EventArgs e)//剪切
		{
			mystatusBar.Panels[0].Text="作业剪切作业中";
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			if(richTextBox1.SelectedText=="")
				MessageBox.Show("未选中任何文本!");
			else	
			    richTextBox1.Cut();
			mystatusBar.Panels[0].Text="就绪";
		}

		private void pasteMenuItem_Click(object sender, System.EventArgs e)//粘贴
		{
			mystatusBar.Panels[0].Text="文本粘贴作业中";
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			richTextBox1.Paste();
			mystatusBar.Panels[0].Text="就绪";
		}

		private void findMenuItem_Click(object sender, System.EventArgs e)//查找
		{
			mystatusBar.Panels[0].Text="文本查找作业中";
			find FindForm=new find(this);//注意this
			FindForm.Show();//打开非模式对话框使用Show()方法
			mystatusBar.Panels[0].Text="就绪";
		
		}

		private void replaseMenuItem_Click(object sender, System.EventArgs e)//替换
		{
			mystatusBar.Panels[0].Text="文本替换作业中";
			replace replaceForm=new replace(this);//注意this
			replaceForm.Show();//打开非模式对话框使用Show()方法	
			mystatusBar.Panels[0].Text="就绪";
		}
		public int FindRichTextBoxString(string FindString)//查找实现
		{
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			if(FindPostion>=richTextBox1.Text.Length)//已查到文本底部
			{
				MessageBox.Show("已到文本底部,再次查找将从文本开始处查找","提示",MessageBoxButtons.OK);
				FindPostion=0;
				return 0;
			}//下边语句进行查找,返回找到的位置,返回-1,表示未找到,参数1是要找的字符串
			//参数2是查找的开始位置,参数3是查找的一些选项,如大小写是否匹配,查找方向等
			FindPostion=richTextBox1.Find(FindString,FindPostion,RichTextBoxFinds.MatchCase);
			if(FindPostion==-1)//如果未找到
			{
			    MessageBox.Show("已到文本底部,再次查找将从文本开始处查找","提示", MessageBoxButtons.OK);
				FindPostion=0;//下次查找的开始位置
				return 0;
			}
			else//已找到
			{
				richTextBox1.Focus();//主窗体成为注视窗口
				FindPostion+=FindString.Length;
				return FindPostion;
			}//下次查找的开始位置在此次找到字符串之后
		}

		public void ReplaceRichTextBoxString(string ReplaceString,string BeReplaceString)//替换实现
		{
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			
			if(richTextBox1.SelectedText.Length!=0)//如果选取了字符串
				richTextBox1.SelectedText=ReplaceString;//替换被选的字符串
			else
				MessageBox.Show("先要查找到替换字符","提示",MessageBoxButtons.OK);
			FindPostion=richTextBox1.Find(ReplaceString,FindPostion-BeReplaceString.Length,RichTextBoxFinds.MatchCase);
			richTextBox1.Focus();//主窗体成为注视窗口
			FindPostion=FindPostion+ReplaceString.Length-BeReplaceString.Length;
		}
//**************************************************编辑菜单区完**********************************************

//**************************************************查看菜单区************************************************
		private void toolBarMenu_Click(object sender, System.EventArgs e)//显示/隐藏工具栏
		{
			if(toolBar1.Visible==true)
			{
				mystatusBar.Panels[0].Text="隐藏工具栏";
				toolBar1.Visible = false;
				toolBarMenu.Text = "工具栏";
			}
			else
			{
			    mystatusBar.Panels[0].Text="显示工具栏";
				toolBar1.Visible = true;
				toolBarMenu.Text = "工具栏                *";
			}				
			mystatusBar.Panels[0].Text="就绪";
		}

		private void menuItem1_Click(object sender, System.EventArgs e)//显示/隐藏状态栏
		{
			if(mystatusBar.Visible==true)
			{
				mystatusBar.Panels[0].Text="隐藏状态栏";
				mystatusBar.Visible = false;
				menuItem1.Text = "状态栏";
			}
			else
			{
				mystatusBar.Panels[0].Text="显示工具栏";
				mystatusBar.Visible = true;
				menuItem1.Text = "状态栏                *";
			}	
			mystatusBar.Panels[0].Text="就绪";
		}
//*****************************************************查看菜单区完*******************************************

//*****************************************************颜色和字体菜单区***************************************
		private void colorMenuItem_Click(object sender, System.EventArgs e)//颜色设置
		{
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			mystatusBar.Panels[0].Text="颜色选择中";
			ColorDialog colorDialog=new ColorDialog();
			colorDialog.ShowDialog();
			richTextBox1.ForeColor=colorDialog.Color;
			mystatusBar.Panels[0].Text="就绪";
		}

		private void fontMenuItem_Click(object sender, System.EventArgs e)//字体设置
		{
			TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
			RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
			mystatusBar.Panels[0].Text="字体选择中";
			FontDialog myDialog=new FontDialog();
			myDialog.ShowDialog();
			richTextBox1.Font=myDialog.Font;
			mystatusBar.Panels[0].Text="就绪";
		}
//*******************************************************颜色和字体菜单区完***********************************

//*******************************************************帮助菜单区*******************************************
		private void helpMenu_Click(object sender, System.EventArgs e)//帮助
		{
			MessageBox.Show("多文档编辑器版本1.1");
		}
//*******************************************************帮助菜单区完*****************************************

//*******************************************************工具栏***********************************************
		private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)//工具栏
		{
			int n=toolBar1.Buttons.IndexOf(e.Button);//n为工具条中被单击按钮的序号
			switch(n)
			{
				case 0://第一个按钮新建文档
					this.newMenuItem_Click(sender,e);
					break;
				case 1://第二个按钮打开文档
					this.openMenueItem_Click(sender,e);
					break;
				case 2://第三个按钮保存文档
					this.saveMenuItem_Click(sender,e);
					break;
				case 3://第四个按钮打印文档
					this.printMenuItem_Click(sender,e);
					break;
				case 4://第五个按钮关闭文档
					TabPage tabPage1=tabControl1.SelectedTab;//得到当前选定的选项卡页
					tabControl1.Controls.Remove(tabPage1);//从tabControl1中移走该页
					//得到当前选定的选项卡页中第0个控件,即RichTextBox控件
					RichTextBox richTextBox1=(RichTextBox)tabPage1.Controls[0];
					if(richTextBox1!=null)
						richTextBox1.Dispose();//删除当前选定选项卡页中RichTextBox控件对象
					if(tabPage1!=null)
						tabPage1.Dispose();//删除当前选定的选项卡页
					if(tabControl1.TabCount==0)
					{
						saveMenuItem.Enabled = false;
						saveAsMenuItem.Enabled = false;
						printMenuItem.Enabled = false;
						previewItem.Enabled = false;
						copyMenuItem.Enabled = false;
						pasteMenuItem.Enabled = false;
						cutMenuItem.Enabled = false;
						findMenuItem.Enabled = false;
						replaseMenuItem.Enabled = false;
						colorMenuItem.Enabled = false;
						fontMenuItem.Enabled = false;
						toolBar1.Buttons[2].Enabled = false;
						toolBar1.Buttons[3].Enabled = false;
						toolBar1.Buttons[4].Enabled = false;
					}
					break;
			}

		}
//***********************************************************状态栏*******************************************
		private void mystatusBar_PanelClick(object sender, System.Windows.Forms.StatusBarPanelClickEventArgs e)//状态栏
		{
		}

		private void timer1_Tick(object sender, System.EventArgs e)
		{
			mystatusBar.Panels[2].Text=DateTime.Now.ToString();
		}

		private void menuItem3_Click(object sender, System.EventArgs e)
		{
			help_AboutSoft softMessage = new help_AboutSoft();
			softMessage.ShowDialog();
		}

		private void menuItem2_Click(object sender, System.EventArgs e)
		{
			help_AboutUse useHelp = new help_AboutUse();
			useHelp.Show();
		}

		private void myText_Closing(object sender, System.ComponentModel.CancelEventArgs e)
		{
			exitMenuItem_Click(sender,e);
		}
//************************************************************状态栏完****************************************
	}
}

⌨️ 快捷键说明

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