博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经理评分
阅读量:5231 次
发布时间:2019-06-14

本文共 5164 字,大约阅读时间需要 17 分钟。

一、首先实现主界面员工信息维护。

1.关键代码,用list绑定datagridview
Datagridview 对象.Datasoure=list 对象;
2.当list数据经过增删改,需要转正
datagridview.datasoure=new bindinglist<T>(mylist)
3.保存父窗体的引用
public frmmain frmparent{get;set;}
(一)在父窗体load事件里赋值

public List
ss = new List
(); private void Frmmian_Load(object sender, EventArgs e) { //实例化对象,给他们初始值 se x = new se(); x.Id = 1; x.Name = "店小一"; x.Age = 3; x.sex = "男"; se x1 = new se(); x1.Id = 2; x1.Name = "大运"; x1.Age = 23; x1.sex = "男"; ss.Add(x); ss.Add(x1); //绑定dataGridView数据 dataGridView1.DataSource = new BindingList
(ss); }

二、增加员工

关键代码:
   this.frmparent.bindgrid(frmparent.ss);      //刷新父窗体
  // bindgrid方法在父窗体:

//public void bindgrid(List
ss) { //刷新datagridview数据 this.dataGridView1.DataSource = new BindingList
(ss); }//重新new员工类se,当前窗体控件里对应的值分别传到新建的员工类里。加if判断是男是女,根据当前新new的工号循坏判断总的是否有相同的,如果有则提示相同 try { se pr = new se(); pr.Id = Convert.ToInt32(this.txtid.Text.Trim()); pr.Age = Int32.Parse(this.txtage.Text.Trim()); pr.Name = this.txtname.Text.Trim(); if (this.txtsex.SelectedItem.ToString() == "男") { pr.sex = "男"; } else { pr.sex = "女"; } foreach (se item in frmparent.ss) { //员工类 父窗体里的数据 if (item.Id == pr.Id) { MessageBox.Show("此工号已存在"); return; } } frmparent.ss.Add(pr); this.Close(); } catch (Exception ex) { MessageBox.Show("出错!" + ex.Message); } finally { this.frmparent.bindgrid(frmparent.ss); //刷新父窗体代码 }

三、实现删除功能

//获取当前选中的,通过id删除

private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)        {            if (this.dataGridView1.SelectedRows.Count > 0)            {                DialogResult choice = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButtons.OKCancel);                if (choice == DialogResult.OK)                {                    string id = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//拿到选中的员工号进行删除                    for (int i = 0; i < ss.Count; i++)                    {                        if (ss[i].Id.ToString() == id)                        {                            //执行删除操作                            ss.Remove(ss[i]);                            //刷新DataGridView                            bindgrid(ss);                            MessageBox.Show("删除成功!");                        }                    }                }                else                {                    MessageBox.Show("请选择一行!");                    return;

四、签到签退

首先定义record类,里面保存签退签到时间,工号以及员工姓名
主窗体里,先判断是否选中,确保是否签到过,
如果签到,获取新的名字以及时间

private Dictionary
rec = new Dictionary
(); private void 签到ToolStripMenuItem_Click(object sender, EventArgs e) { //判断是否选中一行 if (this.dataGridView1.SelectedRows.Count != 1) { MessageBox.Show("请选中一行!"); return; } string workNo = dataGridView1.CurrentRow.Cells[0].Value.ToString(); //遍历Key值 foreach (string item in rec.Keys) { if (workNo == item) { MessageBox.Show("您已经签到过!"); return; } } Record record = new Record(); record.Id = workNo;//id号 record.Name = dataGridView1.CurrentRow.Cells[1].Value.ToString();//获取选中的姓名 record.Intime = DateTime.Now;//当前的时间 this.rec.Add(record.Id, record);//添加到记录里 MessageBox.Show("签到成功!"); }签退: if (this.dataGridView1.SelectedRows.Count != 1) { MessageBox.Show("请选择一行!"); return; } string ID = dataGridView1.CurrentRow.Cells[0].Value.ToString(); bool isOut = false;//标识是否已经签到过 foreach (string item in rec.Keys) { if (item == ID) { this.rec[item].Outtime = DateTime.Now; MessageBox.Show("签退成功!"); isOut = true; break; } } if (!isOut) { MessageBox.Show("很抱歉,尚未签到!"); }

最后绑定数据:

public Frmmian frmparent { get; set; }        public void show {             BindingSource bs = new BindingSource();            bs.DataSource = FrmParent.dic.Values;         this.dataGridView1.DataSource = bs;                }            }        }

 

转载于:https://www.cnblogs.com/yvsheng123/p/8726829.html

你可能感兴趣的文章
mouseenter事件和mouseover事件
查看>>
【iOS】线程安全的文件读写
查看>>
Flex布局基本语法
查看>>
C# Delegate(委托)与多线程
查看>>
OAuth2.0 开放认证和授权/互联网标准协议
查看>>
Python字典练习题
查看>>
第10章 vim程序编辑器
查看>>
windows cmd运行wamp php文件
查看>>
JavaScript基础
查看>>
JAVA复习笔记:内存结构和类加载
查看>>
spfa最短路+DP BZOJ1003 [ZJOI2006] 物流运输
查看>>
JAVA实现时钟
查看>>
EXP4 恶意代码分析 20154310
查看>>
利用DMZ对象保护全局变量
查看>>
[HDU1195]Open the Lock
查看>>
Vagrant 安装以及private_network配置
查看>>
谈C#中的Delegate
查看>>
js 数据类型,进制
查看>>
OGNL valueStack StackContext(ActionContext)深入分析(转+个人理解)
查看>>
【Oracle】详解Oracle中NLS_LANG变量的使用
查看>>