文章目录
前言
记事本是一种常用的软件,在微软的Windows中,自带了一个记事本软件,如图所示。
下述设计的记事本,实现了Windows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、大小和颜色,并在状态栏中显示时间。为了方便用户的操作,还在程序的窗体上放置了一个工具栏。该记事本程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能,并且用户可以根据需要显示或者隐藏工具栏和状态栏。
一、用户界面设计
新建一个Windows窗体应用程序,依次添加MenuStrip(菜单控件)、ToolStrip(工具栏控件)、RichTextBox(多格式文本框控件)、StatusStrip(状态栏控件)、OpenFileDialog(打开对话框)、SaveFileDialog(保存对话框)、FontDialog(字体对话框),Timer(计时器控件),并修改相应控件的属性。
最终界面
二、编写程序代码
1.RichTextBox(多格式文本框控件)
代码如下(示例):
private void rtxtNotepad_TextChanged(object sender, EventArgs e)
{
// 文本被修改后,设置s为false,表示文件未保存
s = false;
}
2.菜单
代码如下(示例):
【文件】菜单
新建
private void tsmiNew_Click(object sender, EventArgs e)
{
// 判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存
if (b == true || rtxtNotepad.Text.Trim() != "")
{
// 若文件未保存
if (s == false)
{
string result;
result = MessageBox.Show("文件尚未保存,是否保存?",
"保存文件", MessageBoxButtons.YesNoCancel).ToString();
switch (result)
{
case "Yes":
// 若文件是从磁盘打开的
if (b == true)
{
// 按文件打开的路径保存文件
rtxtNotepad.SaveFile(odlgNotepad.FileName);
}
// 若文件不是从磁盘打开的
else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
{
rtxtNotepad.SaveFile(sdlgNotepad.FileName);
}
s = true;
rtxtNotepad.Text = "";
break;
case "No":
b = false;
rtxtNotepad.Text = "";
break;
}
}
}
}