日新阁

取日三省之意,记生活珠玑,每日清新,谓日新阁.

 

在一个窗体中数据的改变,使调用它的窗体(父\兄),也跟随变动

formA中打开formB在formB(AddNew.cs)中改变了一些数据,希望在formA中能做相映的响应改变.
一开始采用的是:
1)在formA中
  AddNew addform=new AddNew(this.owner);
  addform.ShowDialog();

 2)在formB中声明formA变量,private Form_EditTitle form1=null;                //题库总窗体

然后在formB中调用 formA.Refurbish(rsort); 方法更新显示树图.

经朋友批评指正后,做了新的尝试.再此非常感谢我的这个好朋友.
现在采用了如下方法:
1)在formA中,调用formB时,
     AddNew addform=new AddNew(this.owner);
     ……
     DialogResult d = addform.ShowDialog();
     if (d == DialogResult.OK)
     {
      string  rsort=ChangeSortByTableName(addform.OwnerName);
      Refurbish(rsort);
     }
2)在formB中,

  private void AddNew_Closing(object sender, System.ComponentModel.CancelEventArgs e)
  {
   if( this.DialogResult != DialogResult.Cancel &&

    this.DialogResult != DialogResult.OK )

    e.Cancel = true;

  }

 private void btnCancle_Click(object sender, System.EventArgs e)
  {
   this.DialogResult = DialogResult.Cancel;
   txtName.Text="";
   //关闭窗体
   this.Close();
  }

private void btnSure_Click(object sender, System.EventArgs e)
{
   ……
   this.DialogResult = DialogResult.OK;
   ……
}

注意:this.DialogResult = DialogResult.OK; 可以含盖this.close(); 故仅this.DialogResult = DialogResult.OK;就可以起到关闭作用.

posted on 2007-03-19 16:42  flashicp  阅读(252)  评论(0编辑  收藏  举报

导航