对表单关闭执行操作?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());
}
但它在近距离上什么也做不了!
如果我理解得很好,你想要的是在用户关闭窗口时运行一些代码(这将计算一些东西)?
以编程方式,您应该在 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!");
}