gpt4 book ai didi

C# 无法连续打开第二个窗体 2 次以上

转载 作者:行者123 更新时间:2023-12-02 06:42:20 24 4
gpt4 key购买 nike

我在类里面就讲了这个。

  public partial class Game : Form
{
Results toResults = new Results();

这是显示表单的地方

private void ShowResults()
{
toResults.Show();
}

我通过单击按钮取消了此操作

private void resultsButton_Click(object sender, EventArgs e)
{
ShowResults();
}

如果我运行我的程序并单击按钮打开第三个表单,它可以工作,但如果我关闭它并重试,它会中断并显示此错误消息(无法访问已处置的对象。)我该如何解决这个问题。我一共有三种形式,我发现如果我打开游戏类,然后单击按钮打开结果,然后关闭结果和游戏我就可以绕过它。但每次都这样做并不是我想要的。我怎样才能做到这一点,这样我就不必关闭游戏类来多次打开结果。

最佳答案

问题是当你 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();
}

关于C# 无法连续打开第二个窗体 2 次以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com