到目前为止,我有这个代码,我想用它来调用子窗体中的相同函数。
父母表格代码:
FormGame frmGame; // i put this here so that in the second function it doesnt complain about frmGame not being set.
public void CreateGame(string Level) // this function is called first
{
FormGame frmGame = new FormGame(this); // i need both functions to be able to access this instance of the child form
frmGame.SetLevel(Level); // sets the text of a label in the child form
frmGame.Show();
}
public void UpdateGame(string Level) // then this function is called second
{
frmGame.SetLevel(Level); // to update the same label as set in the first method
}
这段代码的问题是,虽然是的,但是当它只是坐在那里时没有出现任何错误,但是当调用第二个函数时调试它时它无法找到第一个设置的FormGame实例功能所以frmGame为空。
我尝试过:
答案 0 :(得分:4)
您的代码会创建FormGame
的新实例,其范围仅在该函数内。这绝不会影响您在方法 之外定义的frmGame
变量。
FormGame frmGame = new FormGame(this);
为避免在致电UpdateGame
时出现错误,请勿在方法内定义新变量。
public void CreateGame(string Level)
{
frmGame = new FormGame(this); // use the class-level field
...