c# - 如何查看是否在另一个表单上选中了复选框?
问题描述
我向我的朋友们开始了一个关于 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)
{
}
解决方案
您可以做的一件事是创建一个公共只读属性,该属性反映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...
}
推荐阅读
- xml - 使用 xmllint 根据另一个标签限定符的值提取标签内容
- python - 按列值对查询集进行分组
- r - 使用 dplyr 基于特定因素和日期以及值摘要的计算
- rstudio - 使用最新更新编织 Word 文档时,带有 \newline 的换行符不起作用?
- vb.net - Visual Basic:根据第二个条件更改变量的值
- kotlin - 如何使用函数类型的 typealias?
- reactjs - 使用 React Hooks 使用 Portal 为模态组件设置动画时出现问题
- python - 如何将所有 txt 文件从 dir 转换为 csv(创建和写入文件)并使用 Python 保存它们?
- python - 如何在python中获取月份列表的第一天和最后一天?
- java - Java加密字符串,其中加密字符串和原始字符串长度相同