0

我正在寻找 Wumpus,我遇到了一个问题。(我是高中生)我负责琐事课,我在这里做错了。在我当前的代码中,我正在显示一个表单,要求用户输入,并将 answerstatus 设置为 true/false。我希望另一个班级根据给定的答案计算正确答案的数量。我的问题是,当用户关闭窗口时,如何让这个类计数?

public void passOrFailWumpusEncounter(bool result)
{
    if (currentTested == WUMPUS_TEST_AMOUNT)
    {
        return;
    }
    if(result)
    {
        currentPassed++;
        currentTested++;
    }
    else
    {
        currentTested++;
    }
}

我从

public bool getQuestionStatus()
{
    return questionStatus;
}

(在另一堂课上)我试过了

private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
{
    trivia.passOrFailWumpusEncounter(prompt.getQuestionStatus());
}

但它没有做任何事情!

4

3 回答 3

4

如果我理解得很好,您想要的是在用户关闭窗口时运行一些代码(这会计算一些东西)?

以编程方式,您应该在初始化时运行(例如在加载表单时)

form1.Close += ANewFunction;  // registering the handler

并编写处理程序本身:

public void ANewFunction(EventsArg e)   { ... }

但是在这样一个简单的情况下,你应该让 Visual Studio 来完成这项肮脏的工作:在表单属性中,双击关闭事件(你可能需要单击属性选项卡上的按钮来显示事件,它会注册form1.designer.cs 中的处理程序,并在您的用户代码附近创建处理程序的原型。

于 2012-04-09T22:13:21.923 回答
0

查找任何监听表单关闭的事件。制作一个处理程序,编写调用另一个类中设置正确答案数量的方法的代码。如果这不详细,请让您的问题更详细...

于 2012-04-09T22:10:19.703 回答
0

创建表格并显示后,它仍然是现场直播。因此,您可以在调用函数中从该表单中读取答案。

例如:

Form myForm = new Form();
myForm.ShowDialog();
if (myForm.CheckBox.Checked) //myForm still exists and you check it's state
{
    Console.Out.WriteLine("The answer is yes!");
}
于 2012-04-09T22:29:02.520 回答