[英]cannot access a disposed object exception in my c# winform
我有一个简单的c#winform,它使用报表查看器显示报表。 。 我的表格如下
private void member_Search_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
if (key1 == "index")
{
try
{
this.report_membersTableAdapter.Fill(this.DataSet2.report_members, key1, "", value1, DateTime.Now, DateTime.Now);
this.reportViewer1.RefreshReport();
}
catch (Exception ex) {
MessageBox.Show("mbr_srh::ind" + ex.Message);
}
}
if (key1 == "name")
{
try
{
this.report_membersTableAdapter.Fill(this.DataSet2.report_members, key1, value1, "", DateTime.Now, DateTime.Now);
this.reportViewer1.RefreshReport();
}
catch (Exception ex) {
MessageBox.Show("mbr_srh::nam"+ex.Message);
}
}
if (key1 == "library")
{
try
{
this.report_membersTableAdapter.Fill(this.DataSet2.report_members, key1, "", "", d11, d22);
this.reportViewer1.RefreshReport();
}
catch (Exception ex) {
MessageBox.Show("mbr_srh::lib" + ex.Message);
}
}
if (key1 == "school")
{
try
{
this.report_membersTableAdapter.Fill(this.DataSet2.report_members, key1, "", "", d11, d22);
this.reportViewer1.RefreshReport();
}
catch (Exception ex) {
MessageBox.Show("mbr_srh::sch" + ex.Message);
}
}
}
public void set(string key, string value)
{
key1 = key;
value1 = value;
this.Show();
}
public void Setdate(string key, DateTime d1, DateTime d2)
{
key1 = key;
d11 = d1;
d22 = d2;
this.Show();
}
private void reportViewer1_Load(object sender, EventArgs e)
{
}
}
}`
我可以第一次调用set()
或setdate()
函数,但是当我第二次调用上述函数时,它给了我一个异常cannot access a disposed object exception:object name:member_search
,突出显示this.Show()
在set()
或setdate()
函数,有人可以帮我解决这个问题吗?
如果关闭表格,它将被处置。
据我所知,您确实可以从主表单中打开报告表单。 然后查看您的报告并关闭报告表格。 即使您在主表单中拥有报表表单的变量,也可以通过单击叉形关闭报表表单,然后将其丢弃。 因此,您必须先创建一个新的报告表单,然后才能再次显示它。
如果要避免这种情况,则必须使用member_SearchForm.Hide()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.