日期:2014-05-20  浏览次数:21030 次

简单的类访问窗体控件的问题请教
class   test
        {
                Form1   f1   =   new   Form1();
                String[]   strArry;

                public   test()//构造函数
                {
                        MessageBox.Show( "进入构造函数 ");
                        if   (f1.radioButton1.Checked   ==   true)
                        {
                                MessageBox.Show( "ok ");//为什么不能进入这里的?
                        }
                }
        }

----------------------------
Form1的radioButton1已经设置为public
选定radioButton1后,条件改为false反而进入了if内,请问这是为什么呢?

------解决方案--------------------
我是点选后,才构造函数的。
----------
test 构造的时候创建了一个新的窗体。和你点选得那个窗体并不是同一个对象。

这得从人和宇宙的关系说起:此刻你实例化的对象,与你正在点的窗体对象,是不是同一个对象,是谁杀了我!而我又杀了谁?
似乎我疯了。
------解决方案--------------------
在Test类的构造函数里传入form1,

String[] strArry;

public test(Form1 f1)//构造函数
{
MessageBox.Show( "进入构造函数 ");
if (f1.radioButton1.Checked == true)
{
MessageBox.Show( "ok ");//为什么不能进入这里的?
}
}