Winform窗体用对象数组做一个小项目
首先我我们看一下需求:我们要做的是显示员工信息,实现项目经理给员工评分的功能!
首先项目经理是评分的人所以没有用,因为我们自己写,评分的就是我们自己.所以我们要做的是先在vs也就是我们的环境里建一个项目,在建一个Windows窗体应用程序,然后把控件拖好!


左边是查看员工的信息窗体,右边是给员工评分的窗体;
1.我们现在开始代码部分
我们首先需要一个辅助类,在辅助类里我们要做什么呢?我们要写这些东西。
public int id;
public int age;
public string name;
public char sex;
public int popularitymoods;
public int score;
public string appraise;
这些东西就是一些公有的字段!
然后初始化一个对象数组
public static SE[] se = new SE[10];
在初始化两条员工信息,以便测试之用
public static void Insert()
{
SE s1 = new SE();
s1.id = 111;
s1.age = 26;
s1.name = "王小毛";
s1.appraise = "未评价";
s1.score = 0;
SE.se[0] = s1;
SE s2 = new SE();
s2.id = 112;
s2.age = 22;
s2.name = "周新雨";
s2.appraise = "未评价";
s2.score = 0;
SE.se[1] = s2;
SE s3 = new SE();
s3.id = 113;
s3.age = 30;
s3.name = "张烨";
s3.appraise = "未评价";
s3.score = 0;
SE.se[2] = s3;
}
初始化好数据就真的开始进行操作,我们要在员工的信息窗体loal事件里写这样的一段代码
private void FrmFIrst_Load(object sender, EventArgs e)
{
if (SE.se[0] == null) 这是判断数组是空才可以插入数据
{
SE.Insert();调用初始化数据的方法
}
lvList.Items.Clear(); 清除ListView的所有项
遍历对象数据,如果不为空就把对象数组的数据给到lvList,让lvList现实对象数组的所有数据
for (int i = 0; i < SE.se.Length; i++)
{
if (SE.se[i] != null)
{
ListViewItem item = new ListViewItem(SE.se[i].id.ToString());
item.SubItems.Add(SE.se[i].name);
item.SubItems.Add(SE.se[i].age.ToString());
item.SubItems.Add(SE.se[i].appraise);
item.SubItems.Add(SE.se[i].score.ToString());
lvList.Items.Add(item);
}
}
}
然后双击lvList的项调用员工评分的窗体
private void lvList_DoubleClick(object sender, EventArgs e)这是lvList的双击事件
{
这涉及到窗体传值,我传了三个值,其实可以传一个值。因为是员工对经理的评价.
FrmJudge fj = new FrmJudge();
fj.name = lvList.Items[0].SubItems[1].Text;
fj.appraise = lvList.Items[0].SubItems[3].Text;
fj.score = lvList.Items[0].SubItems[4].Text;
this.Hide();
fj.Show();
}
然后在员工评分的窗体接收传过来的值;用三个公共变量。
public string name;
public string appraise;
public string score;
这三个在公共变量之前已经建好,要不然也不可能.出来!
我们要用窗体上的TextBox接收传过来的值,让他一打开窗体就能看到显示得值.
所以在load事件把值赋给TextBox
private void FrmJudge_Load(object sender, EventArgs e)
{
txt1.Text= name ;
txt2.Text = appraise ;
txt3.Text=score ;
}
这是我在取消的按钮写的代码
private void btn2_Click(object sender, EventArgs e)
{
FrmShow fs = new FrmShow();
this.Hide();
fs.Show();
}
意思是只要我一点击取消,就会调用员工的信息窗体并且隐藏员工评分窗体!
增加的按钮,就是让他在对象数组里修改一条数据。然后显示在员工信息窗体!
private void btn1_Click(object sender, EventArgs e)
{
for (int i = 0; i < SE.se.Length; i++)遍历数组
{
if(SE.se[i]!=null)如果数组不为空
{
if (SE.se[i].name == txt1.Text)并且数组内的元素等于我的txt1d的文本框
{
我就把他的评价和分数修改为我在文本框里添加的数据
SE.se[i].appraise = txt2.Text;
SE.se[i].score = Convert.ToInt32(txt3.Text);
}
}
}
最后我在调用员工信息窗体,我的数据会重新加载!就会及时更新!
FrmShow fs = new FrmShow();
this.Hide();
fs.Show();
Winform窗体用对象数组做一个小项目的更多相关文章
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- 使用PixiJS做一个小游戏
PixiJS PixiJS使用WebGL,是一个超快的HTML5 2D渲染引擎.作为一个Javascript的2D渲染器,Pixi.js的目标是提供一个快速的.轻量级而且是兼任所有设备的2D库. 官方 ...
- 用RecyclerView做一个小清新的Gallery效果 - Ryan Lee的博客
一.简介 RecyclerView现在已经是越来越强大,且不说已经被大家用到滚瓜烂熟的代替ListView的基础功能,现在RecyclerView还可以取代ViewPager实现Banner效果,当然 ...
- 用RecyclerView做一个小清新的Gallery效果
一.简介 RecyclerView现在已经是越来越强大,且不说已经被大家用到滚瓜烂熟的代替ListView的基础功能,现在RecyclerView还可以取代ViewPager实现Banner效果,当然 ...
- 用MVC5+EF6+WebApi 做一个小功能(二) 项目需求整理
在一个项目开始前,需求整理大概要占到整个项目周期15%甚至30%的比重,可以说需求理得越清楚,后续开发中返工几率越小.在一个项目中,开发新功能的花费的精力要远远小于修改功能的精力,这基本是一个共识.老 ...
- MongoDB中对象反序列化的一个小问题
今天在mongoDB存取对象数据的时候,碰到一个小问题:对象的某一个字段类型是抽象类或者接口.在存入的时候没有问题.可是在读取的时候,因为没有详细类的信息,无法完毕对象的又一次构建.就会报错: Can ...
- jquery做一个小的轮播插件---有BUG,后续修改
//首页无缝轮播 ; (function($, window, document, undefined) { $.fn.slider = function(options) { var default ...
- E时代主机,其实做一个小虚拟主机还是不错的
http://www.idcen.com/ 做微信没有网上测试地址,找了一下发现以前用过的.记录一下.一个100m的虚拟主机需要三四十块钱,做微信,做一个小型网站还是够用的,就是mysql有点问题,不 ...
- 用MVC5+EF6+WebApi 做一个小功能(三) 项目搭建
一般一个项目开始之前都会有启动会,需求交底等等,其中会有一个环节,大讲特讲项目的意义,然后取一个高大上的项目名字,咱这是一个小功能谈不上项目,但是名字不能太小气了.好吧,就叫Trump吧.没有任何含义 ...
随机推荐
- throttle和debounce简单实现
function debounce(delay,fn){ var timer; return function(){ var ctx = this,args = arguments; clearTim ...
- Codeforces Round 319 # div.1 & 2 解题报告
Div. 2 Multiplication Table (577A) 题意: 给定n行n列的方阵,第i行第j列的数就是i*j,问有多少个格子上的数恰为x. 1<=n<=10^5, 1< ...
- CDDA 源码解析
一.编译1:从 https://github.com/CleverRaven/Cataclysm-DDA 下载源码2:下载IDE CodeBlocks,http://pan.baidu.com/s/1 ...
- ssh
ssh的配置文件有两个:服务端:/etc/ssh/sshd_config 客户端:/etc/ssh_config 服务端配置文件:/etc/ssh/sshd_config [root@localhos ...
- SQL处理数组,字符串转换为数组
原文转载自:http://hi.baidu.com/gagahjt/item/fd081316450f05028ebde413 一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串 ...
- oracle与mysql创建表时的区别
oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer ), mid ), time dat ...
- ubuntu配置ftp服务器
sudo apt-get update sudo apt-get install vsftpd sudo vi /etc/vsftpd.conf listen=YES anonymous_enable ...
- ".NET Compact Framework v2.0 could not be found."
参考: http://blog.csdn.net/godcyx/article/details/7348431 问题原因: That's a known issue where VS can't di ...
- Python之mmap内存映射模块(大文本处理)说明
背景: 通常在UNIX下面处理文本文件的方法是sed.awk等shell命令,对于处理大文件受CPU,IO等因素影响,对服务器也有一定的压力.关于sed的说明可以看了解sed的工作原理,本文将介绍通过 ...
- C# 连接DB2字符串 Oracle免安装客户端连接字符串
以下是DB2连接数据库 1)使用IBM.Data.DB2链接DB2数据库 2)必须安装DB2客户端,IBM.Data.DB2在安装的BIN里可以找到 3)注意一下DB2客户端版本问题,我的就是WIN7 ...