我正在使用C#,我想检查是否检查了主窗体上的复选框,如果是,运行一些代码,问题是我在一个类文件中(没有窗体的文件,是类文件正确吗?)。最简单的方法是什么?

由于 杰米

有帮助吗?

解决方案

最好的选择是在Form上创建一个 boolean 属性,该属性公开 CheckBox Checked 值。

public bool OptionSelected
{
    get { return checkBox.Checked; }
    set { checkBox.Checked = value; } // the set is optional
}

其他提示

您需要对表单的引用,并且表单必须公开复选框(或查询复选框的属性)。

在这方面,UI编程和非UI编程之间没有区别。如何从另一个类中请求 Person 实例的 Name 属性?您将获得对该实例的引用,并询问相关属性。

所以你肯定需要对表单的引用,然后它是以下之一:

bool checked = form.IsAdultCheckbox.Checked;
bool checked = form.IsAdult; 

IsAdult 属性将返回 someCheckbox.Checked 。)

这里的实际属性名称可能有误(例如 Checked 可能不会返回 bool ),但我希望你明白这一点。

您是否可以使用属性定义接口,使表单实现接口,如果选中该复选框则返回true,并将此接口的实例传递给您的类?

例如:

interface IMyFormFlag
{
    bool IsChecked { get; }
}

public class MyForm : Form, IMyFormFlag
{
    CheckBox chkMyFlag;

    bool IsChecked { get { return chkMyFlag.Checked; } }
}

public class MyObject
{
    public void DoSomethingImportant(IMyFormFlag formFlag)
    {
        if (formFlag.IsChecked)
        {
            // do something here
        }
    }
}

就个人而言,我不喜欢使用set或get。我是这样做的:

if (checkBox.IsChecked.Equals(true))
{
//insert code here
}

你可以使用它,它对我来说很好用

    if (Convert.ToBoolean(CheckBox1.IsChecked))
      {
         MessageBox.Show("true");
      }
    else
       {
         MessageBox.Show("false"); 
       }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top