我在将一个布尔值从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在我的新课程中不断打印出错?
答案 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);
}
}
}