如果你们在将其标记为重复之前阅读了整个问题,将不胜感激。
我试图将单选按钮的值从一种winform传递给另一种。看起来很简单,但我还无法弄清楚。在Form1中,我有两个名为radioCapital的单选按钮控件,radioSmall和一个名为btnInitialize的按钮。btnInitialize后面的代码如下,
public void btnInitialize_Click(object sender, EventArgs e)
{
if (radioSmall.Checked)
{
radioSmall.Checked = true;
}
if (radioCapital.Checked)
{
radioCapital.Checked = true;
}
Form2 callForm2 = new Form2();
callForm2.ShowDialog();
}
还有两个属性,每个单选按钮一个,假设如果选中了单选按钮,则返回布尔值true;如果未选中,则返回false。
public bool CapitalCheck
{
get
{
return this.radioCapital.Checked;
}
}
public bool SmallCheck
{
get
{
return this.radioSmall.Checked;
}
}
现在,在第二个窗体Form2中,我试图访问两个属性并将它们的值发布到标签控件中。
private void btnGetValues_Click(object sender, EventArgs e)
{
Form1 initialize = new Form1();
label3.Text = initialize.CapitalCheck.ToString() + " " + initialize.SmallCheck.ToString();
}
我想根据选中的单选按钮来得到一个真和一个假。但这没有发生。这两个属性均返回false。我基本上不明白为什么。
只需将Form1设置为Form2的所有者,方法是传递this
给ShowDialog()
:
Form2 callForm2 = new Form2();
callForm2.ShowDialog(this); // set Form1 as the OWNER
然后,在Form2中,您可以CAST.Owner
回到Form1并按预期使用它:
private void btnGetValues_Click(object sender, EventArgs e)
{
Form1 initialize = (Form1)this.Owner;
label3.Text = initialize.CapitalCheck.ToString() + " " + initialize.SmallCheck.ToString();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句