📄 text.cs
字号:
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 + -