实验名称:
一、实验目的及要求
1. 掌握Button、Label、TextBox、RadioButton、CheckBox、ListBox、ComboBox控件的使用
二、实验内容
1. 针对课本上的Button、Label、TextBox控件实例上机操作
2. 针对课本上的RadioButton、CheckBox控件实例上机操作
3. 针对课本上的ListBox、ComboBox控件实例上机操作
三、实验设备及环境
1.安装visual studio2010软件
四、实验步骤(功能实现的核心代码及说明)
本实验以讲义中的设计简易计事本案例作为本次形考作业实验报告,实现 Windows 操作系统自带“记事本”的外观效果如图1所示,参考其界面特点和菜单,设计一个类似的“记事本”,自制记事本包括菜单栏,工具栏、状态栏和多个控件,并能实现基本功能。
(1)在”记事本”窗口添加“文件(F)”“编辑(E)”格式(O)”查看(V)”和“帮助(H)”等主莱单,在”帮助”主菜单中添加多个子菜单项,“记事本”的主菜单及“帮助”下拉菜单如图8-37所示。在“文件”主菜单中添加多个子菜单项,如图2所示。
图1“记事本”的主菜单及“帮助下拉菜单” 图2“记事本”的“文件”下拉菜单
(2)在“记事本”窗口添加1个快捷菜单,该快捷菜单包含“剪切(T)”“复制(C)”和“粘贴(P)”3个菜单项。
(3)在“记事本”窗口添加1个工具栏,该工具栏中添加两组按钮,第1组包括“新建”“打开”“保存”3个按钮,第2组包括“剪切”“复制”和“粘贴”3个按钮。
(4)在“记事本”窗口添加1个状态栏,该状态栏主要显示相关信息。
(5)在“记事本”窗口中添加1个RichTextBox 控件,该控件用于文本内容和显示打开文件中的内容。
(6)在“记事本”窗口中添加1个OpenFileDialog控件和1个SaveFileDialog控件。
(7)单击“打开”菜单项或工具栏“打开”按钮,可以打开文本文件,并将打开文本文件
的内容显示在 RichTextBox 控件中.
(8)在Rich TextBox控件中输入文本内容,然后单击“保存”菜单项或工具栏中的“保
存”按钮,可以将输入的内容保存在硬盘中的指定位置。
- “新建”菜单项或工具栏中的“新建”按钮能新建1个文件,并将 RichTextBox控件内容清除。单击“退出”菜单项可以关闭“记事本”窗口,并退出应用程序。
任务一
把实验的相关代码复制到下面实验结果中,并把代码运行的相关运行结果图截屏存放在代码的下面。
- 实验结果(程序运行结果等,可附截图)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CSNotePad
{
public partial class Form1 : Form
{
private string fn = “无标题”;
private StringReader myReader;
public Form1()
{
InitializeComponent();
}
private void 打开OCtrlOToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult result;
StreamReader sr;
StreamWriter sw;
try
{
if (richTextBox1.Modified)
{
result = MessageBox.Show(“文件 ” + fn + ” 的文字已经改变。\r\n\r\n想保存文件吗?”, “记事本”, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
if (result == DialogResult.Cancel)
return;
if (result == DialogResult.Yes)
{
saveFileDialog1.Filter = @”文本文档(*.txt)|*.txt|所有格式|*.txt; *.cs”;
saveFileDialog1.FilterIndex = 2;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
fn = saveFileDialog1.FileName;
sw = new StreamWriter(fn, false, System.Text.Encoding.Default);
sw.Write(richTextBox1.Text);
this.Text = Path.GetFileName(fn) + ” – 记事本”;
richTextBox1.Modified = false;
sw.Flush();
sw.Close();
}
else
return;
}
}
openFileDialog1.Filter = @”文本文档(*.txt)|*.txt|所有格式|*.txt; *.cs”;
openFileDialog1.FilterIndex = 2;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
fn = openFileDialog1.FileName;
sr = new StreamReader(fn, System.Text.Encoding.Default);
richTextBox1.Text = sr.ReadToEnd();
richTextBox1.Modified = false;
sr.Close();
//this.Text = Path.GetFileName(fn) + ” – 记事本”;
this.Text = openFileDialog1.SafeFileName + ” – 记事本”;
saveFileDialog1.FileName = openFileDialog1.FileName;
}
}
catch { }
}
private void 保存SCtrlSToolStripMenuItem_Click(object sender, EventArgs e)
{
StreamWriter sw;
try
{
if (richTextBox1.Modified)
{
if (fn == “无标题”)
{
saveFileDialog1.Filter = @”文本文档(*.txt)|*.txt|所有格式|*.txt; *.cs”;
saveFileDialog1.FilterIndex = 2;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
fn = saveFileDialog1.FileName;
}
sw = new StreamWriter(fn, false, System.Text.Encoding.Default);
sw.Write(richTextBox1.Text);
richTextBox1.Modified = false;
sw.Flush();
sw.Close();
this.Text = Path.GetFileName(fn) + ” – 记事本”;
}
}
catch (Exception ex)
{
MessageBox.Show(“文件无法打开或读取。请确认文件名称是否正确,以及您是否有读取权限。\n异常:” + ex.Message);
}
}
private void 另存为AToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (richTextBox1.Text != string.Empty)
{
saveFileDialog1.Filter = @”文本文档(*.txt)|*.txt|所有格式|*.txt; *.cs”;
saveFileDialog1.FilterIndex = 2;
if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)
{
fn = saveFileDialog1.FileName;
StreamWriter sw = new StreamWriter(fn, false, System.Text.Encoding.Default);
sw.Write(richTextBox1.Text);
richTextBox1.Modified = false;
sw.Flush();
sw.Close();
this.Text = Path.GetFileName(fn) + ” – 记事本”;
}
}
}
catch (Exception ex)
{
MessageBox.Show(“文件无法打开或读取。请确认文件名称是否正确,以及您是否有读取权限。\n异常:” + ex.Message);
}
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
if (richTextBox1.SelectedText != string.Empty)
richTextBox1.Cut();
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
if (richTextBox1.SelectionLength > 0)
richTextBox1.Copy();
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))
{
if (richTextBox1.SelectionLength > 0)
{
DialogResult result;
result = MessageBox.Show(“你想覆盖掉选择的文本吗?”, “覆盖确认”, MessageBoxButtons.YesNo);
if (result == DialogResult.No)
{
richTextBox1.SelectionStart = richTextBox1.SelectionStart + richTextBox1.SelectionLength;
richTextBox1.SelectionLength = 0;
}
}
richTextBox1.Paste();
}
}
private void 新建NCtrlNToolStripMenuItem_Click(object sender, EventArgs e)
{
StreamWriter sw;
try
{
if (richTextBox1.Modified)
{
DialogResult result = MessageBox.Show(“文本发生了改变, 要保存吗?”, “注意”, MessageBoxButtons.YesNoCancel);
if (result == DialogResult.Yes)
{
if (fn == “无标题”)
{
saveFileDialog1.Filter = @”文本文档(*.txt)|*.txt|所有格式|*.txt; *.cs”;
saveFileDialog1.FilterIndex = 2;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
fn = saveFileDialog1.FileName;
}
sw = new StreamWriter(fn, false, System.Text.Encoding.Default);
sw.Write(richTextBox1.Text);
sw.Flush();
sw.Close();
richTextBox1.Clear();
richTextBox1.Modified = false;
this.Text = “无标题 – 记事本”;
saveFileDialog1.FileName = fn = “无标题”;
}
else if (result == DialogResult.No)
{
richTextBox1.Clear();
richTextBox1.Modified = false;
this.Text = “无标题 – 记事本”;
saveFileDialog1.FileName = fn = “无标题”;
}
}
else
{
richTextBox1.Clear();
richTextBox1.Modified = false;
this.Text = “无标题 – 记事本”;
saveFileDialog1.FileName = fn = “无标题”;
}
}
catch (Exception ex)
{
MessageBox.Show(“文件无法打开或读取。请确认文件名称是否正确,以及您是否有读取权限。\n异常:” + ex.Message);
}
}
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void 关于记事本AToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(“版权所有© 2020”, “关于\”记事本\””, MessageBoxButtons.OK);
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
新建NCtrlNToolStripMenuItem_Click(null,null);
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
打开OCtrlOToolStripMenuItem_Click(null,null);
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
保存SCtrlSToolStripMenuItem_Click(null, null);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (richTextBox1.Modified == true)
{
DialogResult dr = MessageBox.Show(“文件发生变化,是否更改保存?”, “注意”, MessageBoxButtons.YesNoCancel);
if (dr == DialogResult.Yes)
{
保存SCtrlSToolStripMenuItem_Click(null, null);
return;
}
else if (dr == DialogResult.No)
{
return;
}
else if (dr == DialogResult.Cancel)
{
e.Cancel = true;
}
}
}
private void 剪切TToolStripMenuItem_Click(object sender, EventArgs e)
{
if (richTextBox1.SelectedText != string.Empty)
richTextBox1.Cut();
}
private void 复制CToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (richTextBox1.SelectionLength > 0)
richTextBox1.Copy();
}
private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e)
{
if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))
{
if (richTextBox1.SelectionLength > 0)
{
DialogResult result;
result = MessageBox.Show(“你想覆盖掉选择的文本吗?”, “覆盖确认”, MessageBoxButtons.YesNo);
if (result == DialogResult.No)
{
richTextBox1.SelectionStart = richTextBox1.SelectionStart + richTextBox1.SelectionLength;
richTextBox1.SelectionLength = 0;
}
}
richTextBox1.Paste();
}
}
}
}
六、实验小结
评阅意见:
评阅得分:
评阅教师:
评阅时间:
请先
!