你可以在FORM_LOAD中执行这个吧

解决方案 »

  1.   

    你可能在FORM_LOAD中执行这个吧
      

  2.   

    是说在Form_Load中之行?还是不应该在Form_Load中之行?
      

  3.   

    没有用啊,虽然参数传的没有问题,但是还是没有办法在类a(Form1的listbox)上显示出来,只要通过别的类调用Class A(Form1) 里面的listbox.Items.Add("..."),Form1的listbox就显示不出来这个内容:(
    于是想到用Invoke,可是又出了这个错误:(
      

  4.   


    线程之间通讯的问题。
    你可以设置一个
    public static string classAListBoxMessage{
      set{
        //设置A中listBox1,可能listBox1也需要设置成static
      }
    }
    在B中给这个属性付值就可以了。
    确定:只能有一个的A的实例
      

  5.   

    如果你能确保Class A(Form1)就是你显示的那个类实例的引用,也能保证listbox.Items.Add("..."),之后有刷新(winform里面是show,web下就要刷页面了)我就实在理解不了了。要不然你可以先试试跟踪以下看看是不是真的add到listbox[]里去了
      

  6.   

    public string ListBoxMessage
    {
    set
    {
    if (this.InvokeRequired)
    {
    WatcherChangedEventHandler watcherHandler = new WatcherChangedEventHandler(OnSomethingHappend);
    object[] message = new object[1];
    message[0]=value;
    this.Invoke(watcherHandler,message);
    }
    else
    {
    this.OnSomethingHappend(value);
    }
    }试试吧,可能还有问题。最主要的问题是 OnsomethingHappend 这个方法不是 listbox1 的,而是窗体的。
    你调用错了主人。另外在控件创建完成之前,的确不能进行多线程调用。
      

  7.   

    Thanks,认真查了一遍代码,发现……嘿嘿,B里面调用的不是A的另外一个实例……
    Sorry啊,浪费了大家好多精力。
    不过也学了好多,谢谢!结贴了