哈喽,你好啊,我是雷工!
前面已经练习了按组织查询和按编号查询的功能,这里接着练习修改人员信息的功能;
首先 实 现 打开修改界面,以下为练习笔记。
01 效果演示①当查询结果为空时,点击【修改】按钮,提示:无任何要修改的人员信息!
②当有查询结果,并选中某一行时,点击【修改】按钮,弹出对应的详细人员信息;
02 实现思路①在根据组织查询后在列表中展示的人员信息,选中其中一条;
②选中后点击【修改】按钮,弹出修改人员信息界面;
③在弹出的界面中显示选中行的人员信息;
03 实现步骤3.1、方法编写
因为修改界面的信息和根据编号查询的人员信息是一样的,只是编号的来源不同,所以这里的方法完全可以使用根据编号查询详细的人员信息时的方法;
3.2、修改事件
在人员信息管理界面的【修改】按钮上双击,生成按钮事件代码:
//修改人员信息private void btnEidt_Click(object sender, EventArgs e){}3.3、构造方法
在修改人员信息界面添加命名空间,添加构造方法用于将对象信息传到修改人员信息界面;
①命名空间
using Models;using DAL;②构造方法
public FrmEditPeople(People objPeople):this(){ //初始化组织选择下拉框 this.cboGroupName.DataSource = new GroupService().GetAllGroups(); this.cboGroupName.DisplayMember = "GroupName";//设置下拉框显示文本 this.cboGroupName.ValueMember = "GroupId";//设置下拉框显示文本对应的值 //显示人员详细信息 this.txtPeopleId.Text = objPeople.PeopleId.ToString(); this.txtPeopleName.Text = objPeople.PeopleName; this.txtPeopleIdNo.Text = objPeople.IdNumber; this.txtPhoneNumber.Text = objPeople.PhoneNumber; this.dtpBirthday.Text = objPeople.Birthday.ToShortDateString(); this.txtAddress.Text = objPeople.Address; this.cboGroupName.Text = objPeople.GroupName; if (objPeople.Gender == "男") this.rdoMale.Checked = true; else this.rdoFemale.Checked = true; this.txtCarNo.Text = objPeople.CarNo; //显示照片 this.pbPeo.Image = objPeople.PeoImage.Length != 0 ? (Image)new Common.SerializeObjectToString().DeserializeObject(objPeople.PeoImage) : Image.FromFile("default.png");}3.4、事件内容
编程思路:
①无信息验证
当还未进行查询或查询结果没有任何结果时,点击【修改】按钮提示没有任何要修改的人员信息!
②未选验证
当未在人员信息列表中选中某条信息时,点击【修改】按钮,提示:请选中要修改的学员信息!
③获取编号
获取在列表中选中的人员编号;
④编号查询
根据获取到的编号信息查询人员对象信息;
⑤修改窗体
显示人员信息修改窗体;
代码如下:
//修改人员信息private void btnEidt_Click(object sender, EventArgs e){ if(this.dgvPeopleList.RowCount==0) { MessageBox.Show("无任何要修改的人员信息!", "雷工提示"); return; } if(this.dgvPeopleList.CurrentRow==null) { MessageBox.Show("请选中要修改的人员信息!", "雷工提示"); } //获取编号 string peopleId = this.dgvPeopleList.CurrentRow.Cells["PeopleId"].Value.ToString(); People objPeople = objPeoServer.GetPeopleById(peopleId); //显示人员信息窗体 FrmEditPeople objFrm = new FrmEditPeople(objPeople); objFrm.Show();}04 后记这里在弹出修改信息界面时做了简单验证,实际项目中当不满足修改条件时,可以动态的将【修改】取消激活,设置为不可点击状态,当满足点击条件时再动态的变成激活状态,这个可以在查询事件中根据查询结果做if判断,然后将按钮的对应属性进行修改;
此处先以提示信息的方式实现;
你在实际项目中是否用过类似的功能?是如何实现的?
可以在留言区或交流群内探讨,共同进步。