前言:
👏作者简介:我是笑霸final,一名热爱技术的在校学生。
📝个人主页:个人主页1 || 笑霸final的主页2
📕系列专栏:作业
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏
1.掌握菜单栏的创建与应用
2.掌握自定义工具栏的创建方法
3.掌握自定义状态栏的创建方法
4.掌握快捷菜单的编程方法
(1)为“文件”菜单项实现的功能为:
1)打开文件,通过打开文件对话框选择文件并将其内容显示在富文本框内。
2)保存和另存为,分别实现对当前文件的保存和另存。
3) 退出,关闭当前窗口
(2)实现编辑菜单项下的“剪切”、“复制”、“撤销”、“粘贴”、“全选”、“查找”、“替换”、“恢复”、“清空”等功能。
其中“查找”“替换”需打开另一窗口设置。
(3)在“格式”菜单项下添加2个下拉菜单:颜色和字体,当执行格式菜单项下的颜色或字体菜单时,分别打开“颜色”或“字体”对话框对富文本框内的文本实现颜色和字体的格式设置。
(4)“窗口”菜单项,其下拉菜单有3个命令:改变窗口标题,最小化窗口,最大化窗口。编写代码实现如下功能:
“改变窗口标题”菜单命令:打开一个标题为“输入窗口标题”的窗口,在其上的文本框中输入文字后,单击其上的“确定”命令按钮,关闭此窗口,同时将输入文字作为主窗口的标题文本使用;
“最小化窗口”菜单命令:将主窗口最小化。
“最大化窗口”菜单命令:将主窗口最大化。
(5)添加标准项工具栏,其中“打开”“保存”“退出”“复制”“粘贴”“剪切”实现与菜单命令相对应的功能。
(6)在状态栏显示系统当前日期与时间。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using static System.Net.Mime.MediaTypeNames;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
namespace 第一题
{
public partial class Form1 : Form
{
ColorDialog colorDialog1 = new ColorDialog();//颜色对话框
//fontDialog1
FontDialog fontDialog1=new FontDialog();//字体设置对话框
public Form1()
{
InitializeComponent();
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
MyText.Text = data.MyTxt;
//开启计时器
timer1.Enabled = true;
timer1.Interval = 1000;//设置1秒
time.Text = DateTime.Now.ToString("yyyy-MM-dd HH:MM:ss");//计时器获取当前时间
}
private void 打开文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
//1)打开文件,通过打开文件对话框选择文件并将其内容显示在富文本框内。
try
{
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
FileStream fs = new FileStream(op.FileName, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs, Encoding.Default);
MyText.Text = sr.ReadToEnd();
data.MyTxt = MyText.Text;//先保存一份
}
catch(Exception exc)
{
//捕获异常防止弹出异常提示
}
}
private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
{
//2)保存和另存为,分别实现对当前文件的保存和另存。
SaveFileDialog op = new SaveFileDialog();
op.Filter = "RTF file(*.rtf)|*.RTF | TXT file(*.txt)|*.TXT";
if(op.ShowDialog() == DialogResult.OK)
{
//保存
switch (op.FilterIndex)
{
case 1: //保存rtf文件
MyText.SaveFile(op.FileName,RichTextBoxStreamType.RichText);
break;
case 2: //保存txt文件
MyText.SaveFile(op.FileName, RichTextBoxStreamType.PlainText);
break;
}
}
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
//3) 退出,关闭当前窗口
this.Close();
}
private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)
{
MyText.Cut();//剪切
}
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
MyText.Copy();//复制
}
private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e)
{
MyText.Undo();//撤销
}
private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
{
MyText.Paste();//粘贴
}
private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
{
MyText.SelectAll();//全选
}
private void 查找ToolStripMenuItem_Click(object sender, EventArgs e)
{
//“替换”需打开另一窗口设置。
Form f2Form = new FindAndReplaceForm();
f2Form.ShowDialog();
}
private void 替换ToolStripMenuItem_Click(object sender, EventArgs e)
{
//“替换”需打开另一窗口设置。
Form f2Form = new FindAndReplaceForm();
f2Form.ShowDialog();
data.find = true;//设置状态
}
private void 清空ToolStripMenuItem_Click(object sender, EventArgs e)
{
MyText.Text = "";//清空
}
private void 恢复ToolStripMenuItem_Click(object sender, EventArgs e)
{
MyText.Text = data.MyTxt;//恢复内容
}
private void Form1_Enter(object sender, EventArgs e)
{
MyText.Text = data.MyTxt;
MessageBox.Show("22");
}
private void Form1_Activated(object sender, EventArgs e)
{
//当第一个窗体活动时激活
if (data.find) {
MyText.Text = data.MyTxt;
data.find = false;//关闭状态
}
if (data.FindTitle)
{//打开过设置标题的窗口
this.Text = data.title;
data.FindTitle = false;//设置状态
}
}
private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e)
{
//(3)在“格式”菜单项下添加2个下拉菜单:
//颜色和字体,当执行格式菜单项下的颜色或字体菜单时,
//分别打开“颜色”或“字体”对话框对富文本框内的文本实现颜色和字体的格式设置。
//设置选定文本的颜色
if (MyText.SelectedText != "")
{
colorDialog1.ShowDialog();//打开颜射选择框
MyText.SelectionColor = colorDialog1.Color;
data.MyTxt = MyText.Text;
}
}
private void MyText_TextChanged(object sender, EventArgs e)
{
data.MyTxt= MyText.Text;//输入的文字
}
private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
{
//设置字体
if (MyText.SelectedText != "")
{
fontDialog1.ShowDialog();
MyText.SelectionFont = fontDialog1.Font;
}
}
private void 最大化窗口ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;//最大化窗口
}
private void 最小化窗口ToolStripMenuItem_Click(object sender, EventArgs e)
{
// 令窗口最小化
this.WindowState = FormWindowState.Minimized;
}
private void 改变窗口标题ToolStripMenuItem_Click(object sender, EventArgs e)
{
title title = new title();
data.FindTitle = true;//设置状态
title.ShowDialog();//打开窗口
}
private void timer1_Tick(object sender, EventArgs e)
{
time.Text = DateTime.Now.ToString("yyyy-MM-dd HH:MM:ss");//计时器获取当前时间
}
}
}
源代码二:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.AxHost;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace 第一题
{
public partial class FindAndReplaceForm : Form
{
RichTextBox textBox = new RichTextBox();//先创建一个富文本对象
public FindAndReplaceForm()
{
InitializeComponent();
}
private void FindAndReplaceForm2_Load(object sender, EventArgs e)
{
textBox.Text = data.MyTxt;//加载数据
}
private void button1_Click(object sender, EventArgs e)
{
//查找
int d = textBox.Find(textBox1.Text);
if (d > 0)
{
//选着位置
data.l = textBox.Find(textBox1.Text);
data.length = textBox2.Text.Length;
MessageBox.Show("已找到,位置:" + d.ToString());
//设置状态
data.stuats = true;
data.find = true;
}
else
{
data.stuats = false;
MessageBox.Show("未找到");
}
}
private void button2_Click(object sender, EventArgs e)
{//替换
button1_Click(sender, e);//调用查找
if (data.stuats)
{
textBox.Select(data.l, data.length);
textBox.Text = textBox.Text.Replace(textBox.SelectedText, textBox2.Text);
//textBox.Text = textBox.Text.Replace(textBox.Text, textBox2.Text);
//数据共享
data.MyTxt = textBox.Text;
data.stuats = false;
this.Close();
}
}
}
}
/****源代码三:***/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 第一题
{
public partial class title : Form
{
public title()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if(txt.Text != "")
{
//有文字就设置
data.title= txt.Text;
}
this.Close();//关闭窗口
}
private void txt_TextChanged(object sender, EventArgs e)
{
}
private void title_Load(object sender, EventArgs e)
{
}
}
}