检查是否通过C#中的特定表单/按钮打开表单

时间:2013-07-21 07:26:08

标签: c# forms

我已经制作了两种不同的表格,'管理员'和'学生',可以选择'密码更改',然后创建另一个表格,询问用户的“新密码”,当用户点击“密码”时会打开在“管理员”或“学生”表单中更改“选项”。

我想知道是否有任何方法可以通过点击“管理员”表单或“学生”表单的链接来检查是否打开了“新密码”表单。如果通过单击“管理”菜单的“密码更改”链接打开“新密码”表单,则更新管理员密码,如果通过学生表单打开“新密码”表单,则更新学生密码。

5 个答案:

答案 0 :(得分:1)

就个人而言,我会从NewPassword创建两个子类作为if条款的大小,你必须检查你的财产是多么巨大

AdminNewPassword : NewPassword
StudentNewPassword : NewPassword

然后你仍然可以在新密码中拥有所有逻辑,但是当你需要以不同方式处理事物时,它们可以采用相应的形式。

然后,对于管理员,您拨打new AdminNewPassword ..学生 - StudentNewPassword

答案 1 :(得分:0)

一个简单的解决方案是将属性添加到名为mode的“新密码”表单:

class NewPassword()
{
   ...
   public string Mode {get;set;}
   ...
}

在调用ShowDialog方法之前首先设置此属性。

答案 2 :(得分:0)

一个简单的解决方案是在新密码表单上实现公共属性,并从开头表单中进行设置。然后,您可以从新密码表单中检查其内容:

以新密码形式:

public string Opener;

if(Opener == "admin")
  // set admin password
else
  // set student password

其他形式:

FrmNewPassword frmPasswd = new FrmNewPassword();
   frmPasswd.Opener = "admin"; // or frmPasswd = "student";
   frmPasswd.Show();

答案 3 :(得分:0)

您可以在“新密码”表单中设置公共属性,并在打开表单之前将其设置为打开它的形式。你可以用对象或字符串或你想要的任何类型来做它。

答案 4 :(得分:0)

如果admin和students继承自相同类型,则只需将表单构造函数中的对象作为基类型传递即可。您将需要基类声明的项目级别因此,如果您的基类是Person,并且您从该Admin和Student继承了2个类

在调用表单中将您的用户声明为Admin或Student(Student s1)然后在您的密码表单的构造函数中使用以下内容:

public New_Password_Form(Person User)

在您的通话表单中显示此表单包括用户。

New_Password_Form npf = new New_Password_Form(s1);
npf.ShowDialog();

这使得新密码表单可以访问从该用户继承自Person的所有属性,并且更改将是持久的。表单关闭后,您可以根据已经建立的方式保存新信息。