public partial class A: Form
{
   int cm;
   float backNumer;//存放可退的最大数量
   public A(ref int icm)
   {
     InitializeComponent();
     cm = icm;
  }
  private void m_OK_Click(object sender, EventArgs e)//OK按钮的单击事件中改变观的值
   {
cm=cm+1;
this.DialogResult=DialogResult.OK;
    }
}public partial class B: Form
{
  int cm=0;
  private void button_Click(object sender, EventArgs e)
  {
   A a=new A(ref cm);
   if(a.ShowDialog()==DialogResult.OK)
     {
//此处发现cm的值没有改变。
      }
  }
}如何在A中改变cm的值时,使B中对应值也得到改变。

解决方案 »

  1.   

    LZ在接收端的
    public A(ref int icm)
    {
         InitializeComponent();
         cm = icm;
    }
    中并没有改变icm的值啊,只是把它的值赋给一个变量cm而已,至于A中后来的按钮事件中改变
    变量cm的值跟传进来的icm(虽然是传址)一点关系都没有  LZ是不是写错了
      

  2.   

    cm = icm;
    原因如上所说。
    这里是值赋值。
      

  3.   

    如何让这里的cm与icm关联呀,icm传过来是局部变量吧!!
    如何达到我想要的结果??这才是我关心的,这里要怎么写。
      

  4.   

    public partial class A: Form
    {
       delegate int MyDelegate();
       MyDelegate cm;
       float backNumer;//存放可退的最大数量
       public A(ref int icm)
       {
         InitializeComponent();
         cm = new MyDelegate(icm);
      }
      private void m_OK_Click(object sender, EventArgs e)//OK按钮的单击事件中改变观的值
       {
        cm=cm+1;
        this.DialogResult=DialogResult.OK;
        }
    }public partial class B: Form
    {
      int cm=0;
      private void button_Click(object sender, EventArgs e)
      {
       A a=new A(ref cm);
       if(a.ShowDialog()==DialogResult.OK)
         {
        MessageBox.Show(cm.ToString();
          }
      }
    }
    我这的所有应用程序基本上被删完了,也没得安装,提示无法访问Windows Installer,但这现在原则是,只要还能启动就不重装,打死也不装。
    帮试上面的代码行不,我只有回家才有得试。