那么在记事本应用中,我们应该添加在窗体中的控件应该有,文件的新建、打开、保存,以及字体的样式、字号、是否加粗倾斜这些基本的记事本控件。同时当然还需要记事本的编辑文本框,方便我们对内容的修改和输入。
了解了这些基本的控件之后,就是我们对每一个控件所绑定的函数的书写了,
首先我们是在设置字体时的需要获取到系统的所有字体样式,
通过以下函数实现:
//获取系统字体
private void FormSon_Load(object sender, EventArgs e)
{
//窗体加载时要加载的字体
InstalledFontCollection MyFontStaly = new InstalledFontCollection();
//获取InstalledFontCollection对象的数据
FontFamily[] ff = MyFontStaly.Families;
//定义一个新的ArrayList数组列表
ArrayList list = new ArrayList();
//获取到字体数组的列表的长度
int count = ff.Length;
for (int i = 0; i < count; i++)
{
//获取到字体数组的字体的名字
string FontName = ff[i].Name;
//将字体保存在字体控件中
toolStripComboBox_fonyStaly.Items.Add(FontName);
}
}
在获取到系统可以设置的所有字体样式之后,就是我们在点击字体时,字体变化的控件了,在这里我们需要在改变字体索引的控件中进行设置,
函数如下:
//改变字体的索引
private void toolStripComboBox_fonyStaly_SelectedIndexChanged(object sender, EventArgs e)
{
//接收当前字体框的文本
string fontname = toolStripComboBox_fonyStaly.Text;
//接收当前字号框的数值
float fontsize = float.Parse(toolStripComboBox_fontSize.Text);
textBox_Text.Font = new Font(fontname, fontsize);
}
设置完成字体控件的属性之后,就是字号属性了,与设置字体控件的思路相似,我们同样需要先获取到改变字号的索引,函数如下:
//改变字号的索引
private void toolStripComboBox_fontSize_SelectedIndexChanged(object sender, EventArgs e)
{
//接收当前字体框的文本
string fontname = toolStripComboBox_fonyStaly.Text;
//接收当前字号框的数值
float fontsize = float.Parse(toolStripComboBox_fontSize.Text);
textBox_Text.Font = new Font(fontname, fontsize);
}
在字号发生变化时,我们需要将文本框中的内容的字号进行改变,这个时候就需要我们在相应的函数中进行设置:
//当字号发生改变时
private void toolStripComboBox_fontSize_TextChanged(object sender, EventArgs e)
{
//接收当前字体框的文本
string fontname = toolStripComboBox_fonyStaly.Text;
//接收当前字号框的数值
float fontsize = float.Parse(toolStripComboBox_fontSize.Text);
textBox_Text.Font = new Font(fontname, fontsize);
}
//加粗按钮
private void toolStripButton_over_Click(object sender, EventArgs e)
{
//点击加粗按钮,字体加粗,加粗是点击按钮取消加粗
//如果目前处于未加粗状态,点击进行加粗
if (textBox_Text.Font.Bold == false)
{
textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Bold);
}
//如果当前处于加粗状态,点击取消加粗
else
{
textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Regular);
}
}
//倾斜按钮
private void toolStripButton_slanr_Click(object sender, EventArgs e)
{
if (textBox_Text.Font.Italic == false)
{
textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Italic);
}
else
{
textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Regular);
}
}
在做保存控件的时候,我们需要考虑到一点,就是我们所保存的文件信息,是否是新建的文本框,如我们是新建的记事本,则在保存时则需要选择保存路径和文件名,如果我们是对原有的文件进行二次编辑,则我们在点击保存按钮时只需要进行保存即可,无需重新选择文件的保存路径。
函数代码如下:
//保存按钮
private void toolStripButton_save_Click(object sender, EventArgs e)
{
//创建一个筛选器
saveFileDialog1.Filter = ("文本文档(*,txt)|*.txt");
// 判断如果当前文本框不为空,则进行保存
if (textBox_Text.Text.Trim() != "")
{
//如果记事本文件是新的,则选择路径保存
if (this.Text == "记事本")
{
//保存文件到用户的指定目录下
//判断用户是保存还是取消
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//获取用户选择的文件及路径
string path = saveFileDialog1.FileName;
//保存文件到指定路径
StreamWriter sw = new StreamWriter(path, false);
sw.WriteLine(textBox_Text.Text.Trim());
//在窗体上方显示路径
this.Text = path;
//清空缓存
sw.Flush();
sw.Close();
}
}
//如果是已经打开的文件,则直接进行保存
else
{
//保存文件到用户的指定目录下
//获取用户选择的文件及路径
string path = this.Text;
//保存文件到指定路径
StreamWriter sw = new StreamWriter(path, false);
sw.WriteLine(textBox_Text.Text.Trim());
sw.Flush();
sw.Close();
}
}
//如果为空,则进行消息框提示
else
{
MessageBox.Show("当前文本框为空!\n不可进行保存!", "警告");
}
}
在进行文件的打开操作时,我们需要对所打开的文件进行筛选,只要求打开txt格式的文本文件即可。
实现函数如下:
//打开文件
private void toolStripButton_open_Click(object sender, EventArgs e)
{
//筛选一个打开文件
### 最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
**感兴趣的朋友可以[点击Java学习](https://gitee.com/vip204888/java-p7)免费获取。**
![](https://img-blog.csdnimg.cn/img_convert/36ef8d8d505c44f7db24ff52340e0e48.png)
![MyBatis答案解析](https://img-blog.csdnimg.cn/img_convert/65e7b5250566dbb7f7c2acff35b212e6.png)
**由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!**
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
on_open_Click(object sender, EventArgs e)
{
//筛选一个打开文件
### 最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
**感兴趣的朋友可以[点击Java学习](https://gitee.com/vip204888/java-p7)免费获取。**
[外链图片转存中...(img-ToKvTzdi-1628337958869)]
[外链图片转存中...(img-XfblsrHb-1628337958871)]
**由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!**
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!