C# 单选按钮从另一个类返回false

C# 单选按钮从另一个类返回false,c#,multithreading,radio-button,C#,Multithreading,Radio Button,大家新年快乐 我在将布尔值从表单发送到一个类时遇到了一个问题,在这个类中,可以通过代码更改表单 因此,我有一个单选按钮(rb2),单击它会启动一个线程。但是,我需要的是radioButton将true或false返回给另一个类 public class Airport : Form { public RadioButon rb2; public void rb2_Checked(Object sender, EventArgs e) { if (rb2.C

大家新年快乐

我在将布尔值从表单发送到一个类时遇到了一个问题,在这个类中,可以通过代码更改表单

因此,我有一个单选按钮(rb2),单击它会启动一个线程。但是,我需要的是radioButton将true或false返回给另一个类

public class Airport : Form
{
    public RadioButon rb2;

    public void rb2_Checked(Object sender, EventArgs e)
    {
       if (rb2.Checked == true)
       {
           thread3 = new Thread(new ThreadStart(p2.Start2));
           thread3.Start();
       }
    }
} 
下面是需要从Airport类获取值true或false的类。但当我打印出来(r)时,它总是打印出false。我已经尝试了一些方法,但到目前为止还没有奏效

class Hubs
{
    public void Start2
    {
        Airport ap = new Airport();
        RadioButton r = ap.rb2;
        Console.WriteLine(r);

        if(r.Checked == true)
        {
            Console.WriteLine("Check r");
        }

    }
}

有没有人想到会导致新的radioButton在我的新类中不断打印false?

考虑在方法中添加一个参数,该参数接受Airport类的实例:

class Hubs
{
    public void Start2(object airport)
    {
        var ap = airport as Airport;
        if (ap == null) return;

        RadioButton r = ap.rb2;
        Console.WriteLine(r);

        if (r != null && r.Checked)
        {
            Console.WriteLine("Check r");
        }
    }
}
然后在调用Airport时将其实例(使用
this
)传递给该方法:

public class Airport : Form
{
    public RadioButon rb2;

    public void rb2_Checked(Object sender, EventArgs e)
    {
        if (rb2 != null && rb2.Checked)
        {
            var x = new Hubs();
            var thread3 = new Thread(x.Start2);
            thread3.Start(this);
        }
    }
} 

您正在创建Airport窗体的新实例和radiobutton的新实例。这个新实例不知道Airport表单初始实例上原始radiobutton rb2的选中状态。为答案干杯,但我还打算怎么做?将Airport实例从表单传递到方法,但请再次思考。如果在选中radiobutton时启动线程,则您已经知道该线程已选中。那么你为什么需要从原始表单获取这些信息呢?@Steve我没有添加的是我有多个单选按钮,布局复杂,但如果返回true,我需要它忽略一些代码,如果返回false,则忽略一些代码。不确定你是否可以从其他线程读取该UI控件。仅通过状态正确/错误?