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

时间:2015-01-01 22:46:36

标签: c# multithreading radio-button

大家新年快乐!

我在将一个布尔值从Form发送到一个类时遇到问题,该类通过Form的代码进行更改。

所以我有一个radioButton(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类获取false值的类。但是当我将它打印出来时(r)它总是打印出来的。我已经尝试了几件事,但他们还没有工作。

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在我的新课程中不断打印出错?

1 个答案:

答案 0 :(得分:1)

考虑在您的方法中添加一个参数,该参数包含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);
        }
    }
}