我向所有朋友发起了一个基于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)
{
}
答案 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...
}