做了个小程序来引发这个错误。
一共是三个Form
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Form1
public partial class Form1 : DevComponents.DotNetBar.Office2007Form
{
public Form1()
{
InitializeComponent();
}
private void buttonX1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.ShowDialog();
}
有一个按钮 ShowDialog出Form2
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Form2
public partial class Form2 : Office2007Form
{
public Form2()
{
InitializeComponent();
}
private void lblFindEmp_MarkupLinkClick(object sender, MarkupLinkClickEventArgs e)
{
Form3 form = new Form3();
form.Show(this);
}
public void SetText(string text)
{
textBoxX1.Text = text;
}
form2 中 由一个MarkupLink 点击 show 出form3
在form3 中 写入值,回传到 form2 的文本框中 显示值
并且关闭form3
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Form3
public partial class Form3 : DevComponents.DotNetBar.Office2007Form
{
public Form3()
{
InitializeComponent();
}
private void textBoxX1_ButtonCustomClick(object sender, EventArgs e)
{
Form2 form = (Form2)this.Owner;
form.SetText(textBoxX1.Text);
this.Close();
}
private void buttonX1_Click(object sender, EventArgs e)
{
Form2 form = (Form2)this.Owner;
form.SetText(textBoxX1.Text);
this.Close();
}
form3 有一文本框 接受输入值,之后有两种方式把文本框中的值回传到form2并且关闭form3
两种方式代码实现一致
第一种方式是 直接点击三个小点的小按钮 完成操作
第二种方式是 点击yes按钮完成操作
结果是第一种方式 成功回传值到form2 ,但在关闭form3了之后,引发了开头的那个异常,
第二种方式却正常的回传值到form2 ,并无影响的关闭form3
虽然找到切入点,但是还是没整清楚为什么!
谁帮帮我。。
请注意是2008项目,应用dotnetbar8.0