教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

C# 实验四 WinForm程序设计

来源:网络收集 时间:2026-04-10
导读: 《C#语言程序设计》实 验 报 告 学院: 信息学院 专业: 软件工程 指导教师: 报告人: 学号: 班级: 实验四 WinForm程序设计 一、目的与要求 1.熟悉Windows应用程序的创建方法。 2.掌握代理的本质。 3.掌握事件代理的定义,事件的定义,事件的触发以及实例

《C#语言程序设计》实 验 报 告

学院: 信息学院

专业: 软件工程

指导教师:

报告人:

学号:

班级:

实验四 WinForm程序设计

一、目的与要求

1.熟悉Windows应用程序的创建方法。 2.掌握代理的本质。

3.掌握事件代理的定义,事件的定义,事件的触发以及实例化事件代理和事件处理方法的实现。

4.了解事件参数类的定义和使用方法。

二、实验仪器

Windows操作系统,Microsoft Visual Studio .NET 2010。

三、实验内容

创建一个Windows应用程序能实现简单的打字功能。首先随机生成一段英文字母序列,这段文本只能由英文大小写字母、数字、空格组成。用户可以在文本框中输入对应的文本,实现打字操作,待完成后,程序能给出此次打字的成绩,并重新随机生成一段文本。程序的界面类似下面的形式:

在窗体上需要安装一个定时器,出题后设置打字总时间启动定时器,定时器每触发一次click事件修改一次剩余时间,当剩余时间为零时不允许再答题。

在输入字符的过程中对输错的字符给出提示。

四、实验过程及结果

1.创建名为Typer的Windows应用程序。

2.在主窗体上放置如示例所示的控件。两个TextBox、三个按钮和多个Label,一个richTextBox。分别设置好它们的属性。

3.在窗体上放置一个定时器,映射定时器的tick事件。将定时器的Interval属性设置为1000,即一秒钟更新一次label。

4.打开主窗体对应的代码文件,在成员定义中加入以下几个成员的定义:存放随机生成的源字符串对象;存放输入字符的目的字符串对象;存放固定字符的字符数组;存放设置字符个数的整型变量。

5.在窗体的构造方法中对存放固定字符的数组进行初始化,例如:

a = new

char[ ]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

6.分别映射三个按钮的单击按钮事件,对三个按钮应当起到的作用描述如下:

“设置”按钮,应当根据它旁边的编辑框中输入的数字来设置出题的字符个数;“开始出题并计时”按钮应当构造一个随机数发生器,然后循环随机生成0~61范围内的随机数,将这个随机数作为字符数组的下标,继而获得随机字符串。”交卷”按钮要比较源串和目标字符串之间相同字符的个数,利用消息框给出成绩。 随机字符串的生成代码:

string str = \

int i, t;

Random rand = new Random(); for (i = 0; i < n; i++) {

t = rand.Next(0, 61); str += a[t].ToString();

}

7.映射输入文本框(richTextBox)的TextChanged事件,在事件处理方法中将出错的字符进行变色显示提醒用户。参考代码如下:

private void richTextBox1_TextChanged(object sender, System.EventArgs e) {

int t = richTextBox1.TextLength; if(t != 0) {

if(t> n) {

MessageBox.Show(\输入的字符超出计划数目\警告\ return ; }

else if(richTextBox1.Text[t-1] != textBox1.Text[t-1] ) {

richTextBox1.Select(t-1,1);

richTextBox1.SelectionColor = Color.Red; richTextBox1.Select(t,0); } else {

richTextBox1.Select(t-1,1);

richTextBox1.SelectionColor = Color.Black; richTextBox1.Select(t,0); } } } using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1 {

public partial class Form1 : Form {

int count = 100; public Form1() {

InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) {

Random r = new Random();

char[] a = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };

for (int i = 0; i < Convert.ToInt32(textBox1.Text); i++) {

richTextBox1.Text = richTextBox1.Text + Convert.ToString(a[r.Next(a.Length)]); }

timer1.Start();

}

private void richTextBox2_TextChanged(object sender, EventArgs e) {

int n = Convert.ToInt32(textBox1.Text); int m = richTextBox2.TextLength; if (n != 0) {

if (n > richTextBox1.TextLength) {

MessageBox.Show(\字符超出\ }

else if (richTextBox1.Text[m - 1] != richTextBox2.Text[m - 1]) {

MessageBox.Show(\你输入的字符有误\ richTextBox2.Select(m - 1, 1);

richTextBox2.SelectionColor = Color.Red; richTextBox2.Select(m, 0);

} else {

richTextBox2.Select(m - 1, 1);

richTextBox2.SelectionColor = Color.Black; richTextBox2.Select(m, 0); } } }

private void timer1_Tick(object sender, EventArgs e) {

if (--count == 0)

count = 100;

label3.Text = count.ToString(); } } }

五、实验总结

在这次实验中我学会了一个算法,怎样形成一个倒计时的方法及错误检测,对未来的自己有很大的帮助。

…… 此处隐藏:1513字,全部文档内容请下载后查看。喜欢就下载吧 ……
C# 实验四 WinForm程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/608144.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)