通过表单传递信息

时间:2016-03-29 16:27:12

标签: c# forms login

因为我和C#一起工作已经有很长一段时间了,感觉又像是一个新手了。我在使用API​​的项目中创建了一个简单的GUI,我需要创建一个简单的登录表单。当有人点击"登录"我会弹出辅助表单。在提示输入用户名和密码的主窗体上,然后关闭该窗体并将信息存储在该类中。问题是,我怎么知道该表格什么时候关闭?

是否有更简单的方法可以执行此操作,或者在辅助表单上单击登录按钮时返回用户名和密码?

我的代码的基础知识如下:

Main.cs

namespace My_Namespace {
    public partial class frmMain : Form {
        public frmMain() {
            InitializeComponent();
        }
    }

    private void mnitLogin_Click(object sender, EventArgs e) {
        Login login = new Login();
        login.ShowDialog();
    }
}

Login.cs

namespace My_Namespace {
    public partial class Login : Form {
        private String Username;
        private String Password;

        public Login() {
            InitializeComponent();
        }

        private void btnLogin_Click(object sender, EventArgs e) {
            Username = txtUsername.Text;
            Password = txtPassword.Text;
            this.Close();
        }

        public String getUsername() {
            return Username;
        }

        public String getPassword() {
            return Password;
        }
    }
}

4 个答案:

答案 0 :(得分:0)

假设Login表单是自定义表单而不是默认对话框,最简单的方法是提升对“登录”按钮的“.Click”事件的访问权限,并在打开它之前添加处理程序。

处理程序激活后,您可以从frmMain检索详细信息,验证它们并关闭登录表单(或显示详细信息无效的消息)。

答案 1 :(得分:0)

ShowDialog完成后,Click事件继续执行 - 即窗口关闭时。该对象仍然有效,因此您可以使用login.getUsername()& login.getPassword()

答案 2 :(得分:0)

通过30分钟的搜索来计算出来。

通过将DialogResult属性添加到Login表单上的按钮,我可以检查表单何时关闭。我不得不稍微改变表单打开的方式:

private void mnitLogin_Click(object sender, EventArgs e) {
    Login login = new Login();
    if (login.ShowDialog() == DialogResult.OK) {
        // Do stuff
        loginToAPI(login.getUsername(), login.getPassword());
    }
}

答案 3 :(得分:0)

在我曾经工作的许多Windows窗体项目中,我们有一个静态或单例类来存储整个应用程序常用的一些数据,例如:

public class SessionInfo
{ 
   public static SessionInfo instance;

   public static SessionInfo GetInstance();
   {          
       if(instance == null)
          instance = new SessionInfo();

       return instance;           
   }

   public string UserName {get; set;}
   public string[] UserRoles {get; set;}
}