在同一个命名空间中有两个窗体,其中一个用于控制硬件(不显示界面)的窗体A,在此窗体中我需要向硬件设备发送字节于是添加了一个ComboBox1控件;另一个窗体B是用户界面,在此界面程序中我需要重新设置窗体A中控件属性ComboBox1.SelectedIndex的值,即this.ComboBox.SelectedIndex = 0x28;。但是我已在窗体A中声明部分首先将B实例化:public B MyPS = new B();如果在窗体B程序的方法中实例化A,即
public A my=new A();
my.ComboBox1.SelectedIndex=0x28;
这样SelectedIndex的值为-1.因为一个没选中。我该如何做?请各位前辈不吝赐教!

解决方案 »

  1.   

    如果我没理解错的话 这个是窗体间通信的问题! 要使用delegate 给你个小例子:Form2中先定义一个delegate
    public delegate void returnvalue( int i );
    public returnvalue ReturnValue;
    form2 中的button按钮代码如下:
    private void button1_Click(object sender, System.EventArgs e)
    {
        if ( ReturnValue != null )
            ReturnValue( 8 );
    }
     
    Form1中的button按键如下:
    private void button1_Click(object sender, System.EventArgs e)
    {
        Form2 temp = new Form2( );
        temp.ReturnValue = new temp.Form2.returnvalue( showvalue );
        temp.Show();
    }
     
    private void showvalue( int i )
    {
        textBox1.Text = i.ToString();
    }
     
    点击form2的button,form1中的textbox中的值就会相应变化。也可以用事件的机制!
      

  2.   

    0x28  SelectedIndex是整形的吧,