前言
这周跟C#打了一周的交道(本周是学校安排的实验周,然后用到了C#实现想要的程序和功能)
一共七个实验,选择三个,我就选择我进步最大的一个来分析一下吧。
效果
先来看一下效果吧
从txt文本中读取数据后展示出来
点击目标后选中,然后点击“修改”,弹出修改界面,然后进行编辑即可
点击“统计”按钮,弹出窗口显示各分数段的信息
点击“查询”后,弹出界面,输入后,点击“确定”即可显示信息
实现
一、准备工作
在写方法之前,首先就是先把界面规划好,就是通过添加按钮和输入框或显示框组成一个符合要求的窗口或多个窗口
在这个程序中我们用到的主要是这几个组件
对文件进行操作要进行引用的声明,即“using”
我们添加的是这两行
然后我们还要写一些代码来实现其他功能
public Form1()
{
InitializeComponent();
this.listView1.Columns.Add("学号", 100, HorizontalAlignment.Center);
this.listView1.Columns.Add("姓名", 100, HorizontalAlignment.Center);
this.listView1.Columns.Add("数学", 100, HorizontalAlignment.Center);
this.listView1.Columns.Add("英语", 100, HorizontalAlignment.Center);
this.listView1.Columns.Add("政治", 100, HorizontalAlignment.Center);
this.listView1.Columns.Add("总分", 100, HorizontalAlignment.Center);
this.listView1.Columns.Add("平均分", 100, HorizontalAlignment.Center);
this.listView1.Columns.Add("名次", 100, HorizontalAlignment.Center);
this.listView1.View = System.Windows.Forms.View.Details;
this.listView1.FullRowSelect = true;//是否可以选择行
}
“listview1”就是按钮上方实现显示的控件,“this”指的就是Form1这个窗口,“Columns”指的是“栏”,也就是上方的内容,“add”指的是把后面的内容作为“Columns”的内容,后面的“100”等都是“Columns”的属性,可以通过修改它的属性来修改它的大小和位置,还有一种生成“Column”的方法是通过属性栏来添加。
点击listview一次选中它,然后右键单击一次,点击属性,会发现有“Column”这个属性,点进去后就可以进行编辑和修改了。
不得不说确实挺方便的,不过实验报告手册中给了部分必须的源码,再加上自己第一次接触C#,所以就没使用后面的方法,不过在后面的操作中使用了一下,确实挺爽。
二、读取操作
这里的“读取”按钮读取的是统计之后的内容,并非成绩等信息,双击“读取”按钮后即可进行编辑(在按钮的属性中我修改了name属性为load,所以此处的方法名为“load_Click”)
private void load_Click(object sender, EventArgs e)
{
this.load_data();
}
此处调用了“load_data()”这个方法
public void load_data()
{ string file = File.ReadAllText("Score.txt", UTF8Encoding.Default);
//把txt文件中按行存储的信息利用regex.Split按行存入string数组中
string[] records = Regex.Split(file, "\r\n");
//开始更新视图
this.listView1.BeginUpdate();
//清空原有视图
this.listView1.Items.Clear();
// records.Length为数组的元素个数
for (int index = 0; index < records.Length; index++)
{ //分割每行记录的各个字段
string[] components = Regex.Split(records[index], " ");
//生成listview的一行
ListViewItem lvi = new ListViewItem(components);
//添加背景色
lvi.SubItems[0].BackColor = Color.Red;
//把新生成的行加入到listview中
this.listView1.Items.Add(lvi);
}
//视图更新结束
this.listView1.EndUpdate();
}
这个方法就是以“/r/n”为分界线定义一个数组1,然后再以空格为分界线定义一个数组2,同时生成一个 ListViewItem 来显示数组2,然后再设置一下背景色,此处设置的为红色
//生成listview的一行
ListViewItem lvi = new ListViewItem(components);
//添加背景色
lvi.SubItems[0].BackColor = Color.Red;
lvi是新生成的listview的命名
三、查询操作
private void Search_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3();
f3.Show();
}
在查询的方法中我们调用了一个窗口Form3,同Form1一样,先规划好窗口的格局,然后再写方法
private void go_Click(object sender, EventArgs e)
{
string file = File.ReadAllText("Score.txt",