如何使引用表单上的控件可访问?
How can I make a control on a referenced form accessible?
我有这段代码可以从我的主表单调用登录表单:
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 "public" 以便我可以从主窗体访问它?
更新
我想在登录表单本身中分配值更有意义,并将主表单的代码更改为:
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();
}
虽然不知道 "preferred" 方法是哪一种。
不做控件public。而是公开一个 属性 作为登录表单的一部分:
public string UserName {get {return textBoxUserName.Text;}}
我有这段代码可以从我的主表单调用登录表单:
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 "public" 以便我可以从主窗体访问它?
更新
我想在登录表单本身中分配值更有意义,并将主表单的代码更改为:
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();
}
虽然不知道 "preferred" 方法是哪一种。
不做控件public。而是公开一个 属性 作为登录表单的一部分:
public string UserName {get {return textBoxUserName.Text;}}