【发布时间】:2018-11-26 17:46:41
【问题描述】:
我有一个带按钮的主窗体。
该按钮的 OnClick 执行以下操作...
Form AllBook = new Form();
//Does some other processing and SQLReader querying.
AllBook.Show();
然后我关闭表单。当我尝试再次显示时,我收到此错误。
System.ObjectDisposedException: '无法访问已处置的对象。 对象名称:'表格'。'
// objects
Form AllBook = new Form();
ComboBox booksList = new ComboBox();
ComboBox chapters = new ComboBox();
Panel topPannel = new Panel();
Panel txtPannel = new Panel();
TextBox mainText = new TextBox();
private void button1_Click(object sender, EventArgs e)
{
// add objects to form
AllBook.Controls.Add(topPannel);
topPannel.Controls.Add(booksList);
// get combobox items from another Method
int chapterCount = countChapters(43);
for (int i = 1; i <= chapterCount; i++) {
chapters.Items.Add(i);
}
topPannel.Controls.Add(chapters);
AllBook.Controls.Add(txtPannel);
txtPannel.Controls.Add(mainText);
AllBook.Show();
}
// count books chapters
public int countChapters(int bookNum) {
int chapter = 0;
switch (bookNum) {
case 1:
chapter = 50;
break;
case 2:
chapter = 40;
break;
case 3:
chapter = 27;
break;
case 4:
chapter = 36;
break;
.....
}
【问题讨论】:
-
您需要向我们展示您如何“关闭表单并再次打开 AllBook 表单”。
-
如果您关闭表单
AllBooks.Close,则该表单将被释放。要再次使用它,您必须创建一个新的或使用Hide而不是Close。 -
每次点击按钮时都调用
AllBook = new Form();。 -
为什么要以编程方式构建表单?只需使用 windows 窗体设计器,这样它就不会看起来一团糟,然后每次要显示窗体时都创建一个新实例
-
'因为我想要一个低内存容量计算机的程序
标签: c# winforms showdialog