使用 属性 将单选按钮的值传递给另一个表单
Pass the value of radio button to another form using property
如果你们在将问题标记为重复之前阅读整个问题,我将不胜感激。
我试图将单选按钮的值从一个 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();
}
还有两个属性,每个单选按钮一个,假设 return 布尔值如果单选按钮被选中则为真,否则为假。
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();
}
我想根据选中的单选按钮得到一真一假。但它不会发生。这两个属性 return false。我基本不明白为什么。
因此,当您初始化 Form2 时,您只需将其传递到构造函数中即可。
示例代码:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(checkBox1.Checked);
frm2.Show();
}
public Form2(bool value)
{
InitializeComponent();
label1.Text = value.ToString();
}
只需将 this
传递给 ShowDialog()
,将 Form1 设置为 Form2 的所有者:
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();
}
如果你们在将问题标记为重复之前阅读整个问题,我将不胜感激。
我试图将单选按钮的值从一个 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();
}
还有两个属性,每个单选按钮一个,假设 return 布尔值如果单选按钮被选中则为真,否则为假。
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();
}
我想根据选中的单选按钮得到一真一假。但它不会发生。这两个属性 return false。我基本不明白为什么。
因此,当您初始化 Form2 时,您只需将其传递到构造函数中即可。 示例代码:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(checkBox1.Checked);
frm2.Show();
}
public Form2(bool value)
{
InitializeComponent();
label1.Text = value.ToString();
}
只需将 this
传递给 ShowDialog()
,将 Form1 设置为 Form2 的所有者:
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();
}