表格上的行动关闭? C#

时间:2012-04-09 22:07:07

标签: c# forms

我正在狩猎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());
}

但它关闭时没有做任何事情!

3 个答案:

答案 0 :(得分:4)

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

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

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

编写处理程序本身:

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

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

答案 1 :(得分:0)

查找任何侦听表单结束的事件。创建一个处理程序,编写调用另一个类中设置正确答案数的方法的代码。如果没有详细说明,请将您的问题更详细,请...

答案 2 :(得分: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!");
}