如何查看是否在其他表单上选中了复选框?

时间:2018-09-06 19:32:21

标签: c# winforms

我向所有朋友发起了一个基于gui的项目,但我不知道如何从另一种形式读取布尔值。这是我的代码的一部分。我对编码真的很陌生,所以我真的建议(读这篇文章的人)问一个问题,我应该多解释些什么。此代码不起作用,但我不知道为什么。我正在执行一个名为s的新设置,然后尝试从设置中读取一个布尔值,但这没有用。

// main form
 private void checkBox5_CheckedChanged(object sender, EventArgs e)
    {
        Settings s = new Settings();          
        {
            if(s.checkBox2.Checked)
            {
                Opacity = 0.9; //For an example

            }              
        }


// Settings form
private void checkBox2_CheckedChanged(object sender, EventArgs e)
    {

    }

1 个答案:

答案 0 :(得分:0)

您可以做的一件事是创建一个公共的只读属性,以反映Settings表单上复选框的值:

public partial class Settings : Form
{
    // This is a read-only property providing access to the Checked propery of a checkbox
    public bool CheckBoxIsChecked => checkBox2.Checked;

    // Rest of form code omitted...
}

然后,当您从Settings表单实例化Main表单时,可以访问该属性。

从您的示例中尚不清楚何时要显示Settings表单,但是下面是一个示例,其中以模态显示(用户必须将其关闭以返回到Main表单),并捕获复选框的值:

public partial class MainForm : Form
{
    private void checkBox5_CheckedChanged(object sender, EventArgs e)
    {
        Settings settings = new Settings();
        settings.ShowDialog();

        // Here we can get the checked state of the checkbox on the Settings form
        if (settings.CheckBoxIsChecked)
        {
            Opacity = 0.9;
        }
    }

    // Rest of form code omitted...
}