【问题标题】:How can I make a control on a referenced form accessible? [duplicate]如何使引用表单上的控件可访问? [复制]
【发布时间】:2015-01-09 19:17:34
【问题描述】:

我有这段代码可以从我的主表单中调用登录表单:

private void frmMain_Activated(object sender, EventArgs e)
{
    frmLogin loginForm = new frmLogin();

    if (loginForm.ShowDialog() == DialogResult.OK)
    {
        HHSConsts.userName = loginForm.textBoxUserName.Text;
    }
    else
    {
        HHSConsts.userName = "dbill";
        HHSConsts.pwd = "ppus"; 
        HHSConsts.currentSiteNum = "42";
    }
    loginForm.Dispose();
}

可能不用说,我在登录表单上有一个名为 textBoxUsername 的 TextBox。

错误消息是,“'HHS.frmLogin.textBoxUsername' 由于其保护级别而无法访问

如何将 textBoxUsername 设为“公开”,以便我可以从主窗体访问它?

更新

我想在登录表单本身中分配值更有意义,并将主表单的代码更改为:

private void frmMain_Activated(object sender, EventArgs e)
{
    frmLogin loginForm = new frmLogin();
    if (loginForm.ShowDialog() != DialogResult.OK)
    {
        HHSConsts.userName = "duckbilled";
        HHSConsts.pwd = "platypus";
        HHSConsts.currentSiteNum = "1967IceBowl";
    }
    loginForm.Dispose();
}

更新 2

所以我可以采用任何一种方式——如上面的更新,或者使用 John Koerner 的方式:

// login form:
public string UserName { get { return textBoxUsername.Text; } }
public string Password { get { return textBoxPwd.Text; } }
public string SiteNumber { get { return listBoxSitesWithFetchedData.SelectedItem.ToString(); } }

// main form:
private void frmMain_Activated(object sender, EventArgs e)
{
    frmLogin loginForm = new frmLogin();
    if (loginForm.ShowDialog() != DialogResult.OK)
    {
        HHSConsts.userName = "empacadores";
        HHSConsts.pwd = "vaqueros";
        HHSConsts.currentSiteNum = "2015IceBowlII";
    }
    else
    {
        HHSConsts.userName = loginForm.UserName;
        HHSConsts.pwd = loginForm.Password;
        HHSConsts.currentSiteNum = loginForm.SiteNumber;
    }
    loginForm.Dispose();
}

不过,不知道哪个是“首选”方法。

【问题讨论】:

  • 还有几十个重复。尝试使用错误消息作为搜索词。

标签: c# winforms login password-protection login-control


【解决方案1】:

不要公开控制。而是将属性公开为登录表单的一部分:

public string UserName {get {return textBoxUserName.Text;}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-17
    • 2022-07-29
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多