将字符串从一个WinForm传递到另一个WinForm不起作用

时间:2013-07-14 13:45:39

标签: string winforms

这是我的C#ADO.NET应用程序。我试图将我的登录用户的名称从我的LoginForm传递给我的MainMenuForm。名称必须在MainMenuForm中的标签上可见。登录成功后,我将关闭我的LoginForm并显示我的MainMenuForm。我为此制作了属性,但我在MainMenuForm中的标签没有显示任何内容。这是我的代码:

LoginForm代码:

    Persons LoggedPerson = new Persons();
    public LoginForm()
    {
        InitializeComponent();
        tbPassword.PasswordChar='*';
        tbPassword.MaxLength = 9;
    }




    private void button1_Click(object sender, EventArgs e)
    {
        Boolean flag = false;
        string username= tbUsername.Text;
        string password = tbPassword.Text;
        var sadrzaj = new NFC_baseEntities1();
        foreach (var x in sadrzaj.Persons) {
            if (x.Username==username && x.Password==password) 
            {
                LoggedPerson.Name= x.Name;
                LoggedPerson.Surname= x.Surname;
                flag = true;
                break;

            }

        }

        if (flag == false)
        {
            DialogResult dialog = MessageBox.Show("Invalid username or password!", "Error", MessageBoxButtons.OK);
           if(dialog==DialogResult.OK)
                   Application.Exit();


        }
        else
        {
            DialogResult dialog = MessageBox.Show("Username and password are correct!", "Message", MessageBoxButtons.OK);
            if (dialog == DialogResult.OK)
            {
                MainMenu forma = new MainMenu();
                forma.Show();
                this.Hide();
            }
        }

    }

    public string TheName
    {
        get { return this.LoggedPerson.Name + " " + LoggedPerson.Surname; }


    }

MainMenuForm代码:

public MainMenu()
    {
        InitializeComponent();
        LoginForm nova = new LoginForm();
        MenuLbLoggedPerson.Text += nova.TheName;
    }

1 个答案:

答案 0 :(得分:0)

我假设您的LoginForm是您的初创表单,您正在MainMenu中创建LoginForm,然后在MainMenu的构造函数中创建另一个LoginForm { {1}} 这是一个完全独立的实例,您的登录信息不可用。尝试在MainMenu添加方法,然后从LoginForm设置方法。

<强>的MainMenu

public MainMenu()
{
    InitializeComponent();
}

public void SetLogin(string loginInfo)
{
    MenuLbLoggedPerson.Text = loginInfo;
}

<强> LoginForm的

MainMenu forma = new MainMenu();
forma.SetLogin(LoggedPerson.Name + " " + LoggedPerson.Surname);
forma.Show();
this.Hide();