1.我们先创建一个.NET Framework桌面应用程序。如下图:
创建项目
把程序命名为记事本
2. 放一个菜单栏写成下图:
3.放一个RichTextBox,把滚动条设为有竖向滚动条。
4、放一个Panel,里面放一个ListBox和Button。
5.给打开注册一个单击事件,代码如下:
List paths = new List();
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "请选择要打开的文件";
ofd.Filter = "文本文件(*.txt)|*.txt|rtf文件(*.rtf)|*.rtf|身份证文件(*.sfz)|*.sfz";
ofd.Multiselect = true;
ofd.ShowDialog();
if(ofd.FileNames.Length==0)
{
return;
}
for (int i = 0; i < ofd.FileNames.Length; i++)
{
richTextBox1.Clear();
using (FileStream fs = new FileStream(ofd.FileNames[i],FileMode.Open,FileAccess.Read))
{
using (StreamReader sr=new StreamReader(fs,Encoding.Default))
{
while (!sr.EndOfStream)
{
richTextBox1.AppendText(sr.ReadLine() + "\r\n");
}
this.Text=Path.GetFileNameWithoutExtension(ofd.FileNames[i])+" - 记事本";
listBox1.Items.Add(Path.GetFileNameWithoutExtension(ofd.FileNames[i]));
paths.Add(ofd.FileNames[i]);
}
}
}
}
6.给保存注册一个单击事件,代码如下:
private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Title = "请选择要保存的文件";
sfd.Filter = "文本文件(*.txt)|*.txt|rtf文件(*.rtf)|*.rtf|身份证文件(*.sfz)|*.sfz";
sfd.ShowDialog();
if(string.IsNullOrEmpty(sfd.FileName))
{
return;
}
using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create,FileAccess.Write))
{
fs.Write(Encoding.Default.GetBytes(richTextBox1.Text), 0, Encoding.Default.GetBytes(richTextBox1.Text).Length);
}
MessageBox.Show("保存成功!","✌");
}
7.给窗体注册一个加载事件,代码如下:
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.WordWrap = false;
panel1.Visible = false;
}
8.给☆自动换行注册一个单击事件,代码如下:
private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e)
{
if(自动换行ToolStripMenuItem.Text=="☆自动换行")
{
自动换行ToolStripMenuItem.Text = "★取消自动换行";
richTextBox1.WordWrap = true;
}
else if(自动换行ToolStripMenuItem.Text=="★取消自动换行")
{
自动换行ToolStripMenuItem.Text = "☆自动换行";
richTextBox1.WordWrap = false;
}
}
9.给图片注册一个单击事件,代码如下:
private void 图片ToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "图片文件(*.png;*.jpg;*.jfif;*.bmp;*.jpeg;*.jpe)|*.png;*.jpg;*.jfif;*.bmp;*.jpeg;*.jpe";
ofd.ShowDialog();
Clipboard.SetDataObject(Image.FromFile(ofd.FileName), false);
richTextBox1.Paste();
}
10.给字体注册一个单击事件,代码如下:
private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
{
FontDialog fd = new FontDialog();
fd.ShowDialog();
richTextBox1.Font = fd.Font;
}
11.给颜色注册一个单击事件,代码如下:
private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
cd.ShowDialog();
richTextBox1.ForeColor = cd.Color;
}
12.给显示注册一个单击事件,代码如下:
private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
{
panel1.Visible = true;
}
13.给隐藏注册一个单击事件,代码如下:
private void 隐藏ToolStripMenuItem_Click(object sender, EventArgs e)
{
panel1.Visible = false;
}
14.给listBox注册一个双击事件,代码如下:
private void ListBox1_DoubleClick(object sender, EventArgs e)
{
richTextBox1.Clear();
using (FileStream fs=new FileStream(paths[listBox1.SelectedIndex],FileMode.Open,FileAccess.Read))
{
using (StreamReader sr =new StreamReader(fs,Encoding.Default))
{
while(!sr.EndOfStream)
{
richTextBox1.AppendText(sr.ReadLine() + "\r\n");
}
this.Text = Path.GetFileNameWithoutExtension(paths[listBox1.SelectedIndex]) + " - 记事本";
}
}
}
15.给Button注册一个单击事件,代码如下:
private void Button1_Click(object sender, EventArgs e)
{
panel1.Visible = false;
}
本章总结:对于MenuStrip、RichTextBox、Panel、ListBox、Button进行了巩固。
------------------------------------------------------------end------------------------------------------------------------------------------------