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;就可以起到关闭作用.