我从课堂开始。
public partial class Game : Form
{
Results toResults = new Results();
这是显示表格的地方
private void ShowResults()
{
toResults.Show();
}
我点击按钮点击
private void resultsButton_Click(object sender, EventArgs e)
{
ShowResults();
}
如果我运行我的程序并单击按钮打开第三个表单它可以工作,但如果我关闭它并再次尝试它会打破此错误消息(无法访问已处置的对象。)我怎么能解决这个问题。我总共有三种形式,我发现如果我打开游戏类,然后单击按钮打开结果,然后关闭结果和我可以绕过它的游戏。但每次都会发生这种情况并不是我想要的。我怎么能这样做所以我不必关闭游戏类来多次打开结果。
答案 0 :(得分:1)
问题在于,当您close表单时,关闭对象中创建的所有资源并处理表单。 修复它的最简单方法是处理Closing事件并在处理程序中隐藏表单或在打开它之前创建表单。
public Game()
{
Results toResults = new Results();
toResults.FormClosing += F_FormClosing;
}
private void F_FormClosing(object sender, FormClosingEventArgs e)
{
toResults.Hide();
e.Cancel = true;
}
private void ShowResults()
{
toResults.Show();
}
或
public partial class Game : Form
{
Results toResults;
private void ShowResults()
{
toResults = new Results();
toResults.Show();
}