我有我的 Windows 窗体 Main.cs 和我的 Windows 窗体 Options.cs。在我的 Main.cs 中,我定义了一个名为“Player”的类,并在那里实例化了它。
我希望能够从我的 Options 表单访问我在 Main.cs 表单中创建的 Player 对象的方法和属性。 Visual Studio 2010 告诉我“名称“Player1”在当前上下文中不存在。
我觉得很奇怪而且让我更加困惑的是我可以从 Options.cs 表单中“看到”我的 Player 类的静态方法。
提前致谢!
编辑:
在 Main.cs 中:
Player Player1 = new Player("Player 1", "X");
Player Player2 = new Player("Player 2", "O");
...
public class Player
{
public static bool Turn { get; set; }
public static int TotalGames { get; set; }
public string Name { get; set; }
public string Icon { get; set; }
public static void ToggleTurn()
{
Turn = !Turn;
}
public Player(string name, string icon)
{
Name = name;
Icon = icon;
}
}
内部 Options.cs:
private void Options_Load(object sender, EventArgs e)
{
SetCheckboxesToPlayerTurn();
txtPlayer1Name.Text = Player1.Name; //HERE IS WHAT I WANT :(
}
最佳答案
您需要以某种方式从 Options 表单中获取对 Player 对象的引用。
改变这一行:
Player Player1 = new Player("Player 1", "X");
到
public Player Player1 = new Player("Player 1", "X");
并将其移出构造函数(如果它在此处)。 然后在 Options 中创建一个接受 Main 实例的构造函数,如下所示:
private Main main;
public Options(Main main)
{
this.main=main;
}
现在,不再使用 Main 中的默认构造函数创建 Options,而是使用(仍在 Main 中):
Options o = new Options(this);
您现在应该能够使用以下选项从选项中引用您的玩家:
string name = this.main.Player1.Name
关于c# - 如何使用 C# 访问另一个 Windows 窗体中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4373341/