如何在所有表单上使用创建的实例/如何制作我的实例 public C# windowsforms
How to use created Instance on all forms / How to make my instance public C# windowsforms
你好,这对你来说可能是个简单的问题,我是初学者,我正在制作自己的简单游戏,我想使用 Class:Gamer,我想初始化它 在 MainWindow(Form1.cs) 从一个保存文件。从那时起,我也想在另一个 Forms 上使用它 ,但不知何故我无法让实例运行 public.
你能告诉我我做错了什么吗?或者还有另一种方法可以解决这个问题吗?
谢谢:)
Form1 上的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Text;
using System.IO;
namespace THE_GAME
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static Gamer Player;
private void MainWindow_Load(object sender, EventArgs e)
{
//load from savefile lvl;hp;money;gun;armor,name
string allData = File.ReadAllText("../../saveFile/save.txt");
string[] dataFromSave = new string[5];
dataFromSave = allData.Split(';');
Player = new Gamer(dataFromSave[0], dataFromSave[1], dataFromSave[2], dataFromSave[3], dataFromSave[4], dataFromSave[5]);
}
}
}
secondForm2 上的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Text;
namespace THE_GAME
{
public partial class Statistics : Form1
{
public Statistics()
{
InitializeComponent();
}
private void Statistics_Load(object sender, EventArgs e)
{
//labels stats
labelName.Text = Form1.Player.GetName();
labelHealth.Text = Form1.Player.GetHealth().ToString();
labelMoney.Text = Form1.Player.GetMoney().ToString();
}
private void buttonBack_Click(object sender, EventArgs e)
{
MainMenu menu = new MainMenu();
menu.Show();
this.Close();
}
}
}
感谢您的宝贵时间。
要从不同的表单获取 Gamers Player 对象,只需执行
Form1.Player;
即
var nam = Form1.Player.Name;
Form1.Player.Die();
等等
PS 正如我在评论中所说的那样 - 从您的另一个表格中推导出您的一个表格非常奇怪。像这样
public partial class Statistics : Form1
你好,这对你来说可能是个简单的问题,我是初学者,我正在制作自己的简单游戏,我想使用 Class:Gamer,我想初始化它 在 MainWindow(Form1.cs) 从一个保存文件。从那时起,我也想在另一个 Forms 上使用它 ,但不知何故我无法让实例运行 public.
你能告诉我我做错了什么吗?或者还有另一种方法可以解决这个问题吗? 谢谢:)
Form1 上的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Text;
using System.IO;
namespace THE_GAME
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static Gamer Player;
private void MainWindow_Load(object sender, EventArgs e)
{
//load from savefile lvl;hp;money;gun;armor,name
string allData = File.ReadAllText("../../saveFile/save.txt");
string[] dataFromSave = new string[5];
dataFromSave = allData.Split(';');
Player = new Gamer(dataFromSave[0], dataFromSave[1], dataFromSave[2], dataFromSave[3], dataFromSave[4], dataFromSave[5]);
}
}
}
secondForm2 上的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Text;
namespace THE_GAME
{
public partial class Statistics : Form1
{
public Statistics()
{
InitializeComponent();
}
private void Statistics_Load(object sender, EventArgs e)
{
//labels stats
labelName.Text = Form1.Player.GetName();
labelHealth.Text = Form1.Player.GetHealth().ToString();
labelMoney.Text = Form1.Player.GetMoney().ToString();
}
private void buttonBack_Click(object sender, EventArgs e)
{
MainMenu menu = new MainMenu();
menu.Show();
this.Close();
}
}
}
感谢您的宝贵时间。
要从不同的表单获取 Gamers Player 对象,只需执行
Form1.Player;
即
var nam = Form1.Player.Name;
Form1.Player.Die();
等等
PS 正如我在评论中所说的那样 - 从您的另一个表格中推导出您的一个表格非常奇怪。像这样
public partial class Statistics : Form1