将值从一种形式转移到另一种形式

时间:2015-06-07 10:58:20

标签: c#

我无法弄清楚这个问题。

我想转移在"登录表单"中输入的用户名。进入"重定向表单"在哪里说“感谢您登录(USERNAME)'。

图片在这里: http://i.stack.imgur.com/ikX4o.png

我想要在第一个表单上输入用户名后输入的任何内容,点击“登录”按钮后,转移到“重定向”表单,并在其中显示" Abdullah"更改登录表单中的用户名。

谢谢

这是登录表单中的代码

private void btnLogin_Click(object sender, EventArgs e)
    {
        Users singleResult = Data.UsersL.Find(usr => usr.UserName == txtUsername.Text && usr.PassWord == txtPassword.Text);

        if (singleResult == null)
        {
            MessageBox.Show("Username or password is incorrect");
            return;
        }
        if (singleResult.Permitted == false)
        {
            MessageBox.Show("Im sorry, you are not authorized");
            return;
        }
        else
        {
            MessageBox.Show("User is authorized");
            FrmRedirect f1 = new FrmRedirect();  
            f1.ShowDialog();
        }

2 个答案:

答案 0 :(得分:1)

在项目中创建一个静态类:

public static class MyClass
{
    public static string Name = "";
}

从登录表单设置此变量的值(在登录按钮的单击事件上):

MyClass.Name = txtUsername.Text;

现在,您可以在项目的任何位置使用此变量。

以重定向形式:

lblTitle.Text = "Thank you for logging in " + MyClass.Name;

答案 1 :(得分:0)

在这种情况下,最简单的方法是在实例化表单时直接处理数据。以前的解决方案并不是最好的,因为如果你不需要静态类,我总会避免使用静态类。

你有一些选择:

  1. 使用您将参数传递给
  2. 的参数创建构造函数
  3. 创建属性

    FrmRedirect f1 =新的FrmRedirect(名字);
    f1.ShowDialog();

  4. 你的构造函数在哪里:

    public FrmRedirect(string name)
    {
         lblTitle.Text = "Thank you for logging in " + name;
    }
    

    否则,如果您的表单已经打开,则应考虑使用自定义 EventArgs 的事件在类之间传输数据。