我正在狩猎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());
}
但它关闭时没有做任何事情!
答案 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!");
}