对表单关闭执行操作?C#.

本文关键字:操作 执行 表单 | 更新日期: 2023-09-27 18:30:45

我正在猎杀Wumpus,我遇到了一个问题。(我是高中生)我负责琐事课,我在这里做错了什么。在我当前的代码中,我显示一个表单,要求用户输入,并将答案状态设置为 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());
}

但它在近距离上什么也做不了!

对表单关闭执行操作?C#.

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

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

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

并编写处理程序本身:

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

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

查找侦听窗体关闭的任何事件。创建一个处理程序,编写代码,调用另一个类中设置正确答案数的方法。如果这不详细,请使您的问题更详细...

创建表单并显示表单后,它仍然是实时的。因此,您可以在调用函数中从该表单中读取答案。

例如:

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!");
}