c#机房重构修改密码与继承
前言:
根据标题大家应该能大概能猜测到,下面我要分享的内容了吧! 没错,就是在修改密码的时候利用继承。做到修改密码这个功能只写一遍,但是你能在多个窗体使用(包括控件)。当然大家看到这肯定有的丈二和尚摸不着头的感觉,大家别着急继续往下看。是有前提条件的!
前提条件:
在vb版机房收费系统,没有根据不同的级别显示不同的窗体。只是简单的分了下权限而已。所以修改密码这个功能只写一遍就可以了。
现在重构版是根据不同的级别显示不同的窗体。这时虽然修改密码和查询密码,用的都是同一个数据表。但是窗体控件和方法调用还得手写三遍,这个时候利用继承。就可以把第一个修改密码的窗功能完成继承过来,只有在调用这个窗体的时候。单例模式需要从新写之外,其他的都不需要从新写。(这个相当于使用了模板方法,模板方法就是制造一个共同的模板。具有和模板相同功能的窗体,都可以使用这个模板)
好了理论到此结束!
代码实现:
模板
确定命令按钮代码
#region 判断新密码框是否有内容
if (newpwd1.Text=="" && newpwd2.Text == "")
{
newpwd1.CausesValidation = true;
MessageBox.Show("新密码不能为空");
}
else
{
//判断新密码和确认密码是否一致
if (newpwd1.Text == newpwd2.Text)
{
#region 密码的查询与更新
//实例化学生
UserLevel student = new UserLevel();
//给学生卡号,密码赋值
//通过UserLevel.UserIdALL全局变量来锁定用户。
student.UserID = UserLevel.UserIDAll;//确保只能修改自己的密码
student.UserPwd = oldPwd.Text;
//实例化外观,用来查询密码
StuPwdFacade facade = new StuPwdFacade();
//接收返回值
string strFlage = facade.SelectStuPwd(student);
#region 更新密码判断
if (strFlage == "密码更新成功!")
{
//更新用户密码
UserLevel user = new UserLevel();
user.UserID = UserLevel.UserIDAll;
user.UserPwd = newpwd1.Text;
facade.UpUserlevel(user);
}
#endregion
MessageBox.Show(strFlage);
//强制退出
#endregion
}
else
{
MessageBox.Show("密码不一致,请从新输入!");
}//end if
}
#endregion
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
单例模式(在跳转到修改密码之前的窗体使用)
public static StuPwd stupwd;
//判断是否已经实例化
if (stuReCharge==null)
{
stuReCharge = new StuReCharge();
stuReCharge.Show();//显示窗体
}//end if
- 1
- 2
- 3
- 4
- 5
- 6
- 7
退出按钮代码
//改变单例模式的状态
StudentMain.stupwd = null;
this.Close();//关闭
- 1
- 2
- 3
继承者代码:
从从这个图片就可以看到,这里面的控件都是锁定的状态。不可更改里面的代码。
从下面图片就可以看到,和继承类是一样的方法。只不过在继承之前,需要先新建一个Windows窗体,继承完了窗体的布局和模板一摸一样。
继承的退出按钮
//更改单例模式的状态
OperatorMain.opertonPwd = null;
this.Close();//关闭
- 1
- 2
- 3
单例模式(在跳转到修改密码之前的窗体使用)
//修改密码窗体
public static OperPwd opertonPwd;
//判断是否已经被实例化
if (opertonPwd ==null)
{
opertonPwd = new OperPwd();
opertonPwd.Show();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
文章来源: kangshihang.blog.csdn.net,作者:康世行,版权归原作者所有,如需转载,请联系作者。
原文链接:kangshihang.blog.csdn.net/article/details/103644114
- 点赞
- 收藏
- 关注作者
评论(0)