ObjectDisposedException:无法访问已释放的对象

时间:2017-06-17 12:44:32

标签: c# linqpad

我正在尝试为我在学校的项目创建一个程序,我遇到了一个问题。我正在使用LinqPad premium,当我启动程序时,它开始正常。但是,当我尝试第二次或第三次启动时,它会抛出异常: “ObjectDisposedException:无法访问已处置的对象。” “对象名称:'表单'。”

这是我的代码:

void Main()
{
    MenuClass.Main();
}
class MenuClass
{
    static public Form MenuWindow = new Form();
    static public void Main()
    {
        MenuWindow.Height = 300;
        MenuWindow.Width = 300;
        MenuWindow.Text = "Menu";

        Button btnPlay = new Button();
        btnPlay.Left = 10;
        btnPlay.Top = 290;
        btnPlay.Text = "Reset";
        //btnPlay.Click += btnReset_click;

        Button btnTakeTurn = new Button();
        btnTakeTurn.Left = 10;
        btnTakeTurn.Top = 270;
        btnTakeTurn.Text = "Take Turn";
        //btnTakeTurn.Click += btnTakeTurn_click;

        Graphics g = MenuWindow.CreateGraphics();

        MenuWindow.Controls.Add(btnPlay);
        MenuWindow.Controls.Add(btnTakeTurn);

        //MenuWindow.Paint += f_Paint;

        MenuWindow.Show();
    }
}

出现错误的地方是“Graphics g = MenuWindow.CreateGraphics();” 而且当我拿出它时,它在“MenuWindow.Show();”

上完成

请帮助,因为在这种情况下我无能为力。

1 个答案:

答案 0 :(得分:0)

变化:

static public Form MenuWindow = new Form();
static public void Main()
{

为:

static public void Main()
{
    var MenuWindow = new Form();

确保每次调用都生成一个新表单。