首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用属性将单选按钮的值传递给另一个窗体

使用属性将单选按钮的值传递给另一个窗体
EN

Stack Overflow用户
提问于 2020-07-03 03:31:32
回答 2查看 406关注 0票数 0

如果你们在标记为重复之前阅读整个问题,我将不胜感激。

我尝试将单选按钮的值从一个winform传递到另一个winform。这看起来很简单,但我还不能理解。在Form1中,我有两个名为radioCapital、radioSmall的单选按钮控件和一个名为btnInitialize的按钮。隐藏btnInitialize的代码如下所示:

代码语言:javascript
复制
 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。

代码语言:javascript
复制
 public bool CapitalCheck
    {
        get
        {
            return this.radioCapital.Checked;
        }
    }
  
 public bool SmallCheck
    {
        get
        {
            return this.radioSmall.Checked;
             
        }
    }

现在,在第二种形式,即Form2中,我试图访问属性并将它们的值发布到一个标记控件中。

代码语言:javascript
复制
private void btnGetValues_Click(object sender, EventArgs e)
    {
        Form1 initialize = new Form1();
        label3.Text = initialize.CapitalCheck.ToString() + " " + initialize.SmallCheck.ToString();
    }

根据选中的单选按钮,我假设得到一个true和一个false。但这并没有发生。这两个属性都返回false。我基本上不明白为什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-03 04:00:40

只需通过将this传递给ShowDialog()来将Form1设置为Form2的所有者

代码语言:javascript
复制
Form2 callForm2 = new Form2();
callForm2.ShowDialog(this); // set Form1 as the OWNER

然后,在Form2中,您可以将.Owner转换回Form1并按预期使用它:

代码语言:javascript
复制
private void btnGetValues_Click(object sender, EventArgs e)
{
    Form1 initialize = (Form1)this.Owner;
    label3.Text = initialize.CapitalCheck.ToString() + " " + initialize.SmallCheck.ToString();
}
票数 0
EN

Stack Overflow用户

发布于 2020-07-03 03:55:34

所以,当你初始化Form2的时候,你可以直接在构造函数中传递它。示例代码:

代码语言:javascript
复制
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();
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62703772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档