C# 在表单之间传输数据
我有两张表格。第一个是文本框和按钮,另一个是标签。当您在文本框中输入文本并按下按钮时,将打开一个新表单,并且标签的文本与上一表单中的文本框相同。我如何使用get/set实现这一点? 我制作了一个“Globals”类,其中包括get/set:C# 在表单之间传输数据,c#,C#,我有两张表格。第一个是文本框和按钮,另一个是标签。当您在文本框中输入文本并按下按钮时,将打开一个新表单,并且标签的文本与上一表单中的文本框相同。我如何使用get/set实现这一点? 我制作了一个“Globals”类,其中包括get/set: class Globals { public string imena = ""; public string ime { get { return imena;
class Globals
{
public string imena = "";
public string ime
{
get
{
return imena;
}
set
{
imena = value;
}
}
}
以第一种形式
private void btnplay_Click(object sender, EventArgs e)
{
//this.Hide();
Game igra = new Game();
igra.Show();
Globals promenljive = new Globals();
promenljive.ime = tbpl1.Text;
}
第二个呢
private void Game_Load(object sender, EventArgs e)
{
Globals promenljive = new Globals();
lblime1.Text = promenljive.ime;
}
但它不起作用?我做错了什么?你不能在游戏加载中创建新的全局对象,你必须将对全局对象的引用传递到游戏的构造函数中。你不能在游戏加载中创建新的全局对象,您必须将对Globals对象的引用传递到游戏的构造函数中。首先,您要创建两个独立的
Globals
实例。。。这些都有自变量,这就是为什么你没有看到你刚刚设定的值。这就像把一栋房子漆成红色,然后看着一栋完全不同的房子的颜色
然而,像这样使用“globals”类是个坏主意。为什么不向游戏
构造函数添加一个参数,并以这种方式传递数据呢
Game igra = new Game(tbpl1.Text);
igra.Show();
根据您最初的方法,听起来您可能是OOP新手。如果是这种情况,我强烈建议您在开始编写GUI应用程序之前,先了解C#、.NET和OO的基本知识。GUI有其自身的困难(如线程规则),即使您对基础知识有信心,也很难开发。目前,您会发现很难区分真正的GUI特定问题与不理解C#和.NET的一般工作方式之间的区别。首先,您创建了两个独立的
全局
实例。。。这些都有自变量,这就是为什么你没有看到你刚刚设定的值。这就像把一栋房子漆成红色,然后看着一栋完全不同的房子的颜色
然而,像这样使用“globals”类是个坏主意。为什么不向游戏
构造函数添加一个参数,并以这种方式传递数据呢
Game igra = new Game(tbpl1.Text);
igra.Show();
根据您最初的方法,听起来您可能是OOP新手。如果是这种情况,我强烈建议您在开始编写GUI应用程序之前,先了解C#、.NET和OO的基本知识。GUI有其自身的困难(如线程规则),即使您对基础知识有信心,也很难开发。目前,您会发现很难区分真正的GUI特定问题与不理解C#和.NET的总体工作原理之间的区别。不。这不起作用,因为您有两个不同的全局变量实例(变量)。每个都有其不同的值集 您需要在两个窗体之间使用一个共享全局变量 例如: 在Form1中创建全局变量,然后在实例化游戏时,在构造函数中传递全局引用:
Globals promenljive = new Globals();
promenljive.ime = tbpl1.Text;
Game igra = new Game(promenljive);
igra.Show();
public Game(Globals g) {
this.promenljive = g; // you need a global member in Game called promenljive
}
然后,将引用存储在游戏的构造函数中:
Globals promenljive = new Globals();
promenljive.ime = tbpl1.Text;
Game igra = new Game(promenljive);
igra.Show();
public Game(Globals g) {
this.promenljive = g; // you need a global member in Game called promenljive
}
希望它有帮助。不。它不会起作用,因为您有两个不同的全局变量实例。每个都有其不同的值集 您需要在两个窗体之间使用一个共享全局变量 例如: 在Form1中创建全局变量,然后在实例化游戏时,在构造函数中传递全局引用:
Globals promenljive = new Globals();
promenljive.ime = tbpl1.Text;
Game igra = new Game(promenljive);
igra.Show();
public Game(Globals g) {
this.promenljive = g; // you need a global member in Game called promenljive
}
然后,将引用存储在游戏的构造函数中:
Globals promenljive = new Globals();
promenljive.ime = tbpl1.Text;
Game igra = new Game(promenljive);
igra.Show();
public Game(Globals g) {
this.promenljive = g; // you need a global member in Game called promenljive
}
希望有帮助。请编辑您的问题,选择您的代码并在编辑器中按“代码”按钮(带101\010的)。请编辑您的问题,选择您的代码并在编辑器中按“代码”按钮(带101\010的)。我收到了,谢谢。我意识到,在这种情况下,使用Globals类,我会在没有必要的情况下将其复杂化。我是OOP的新手,今年我已经高中毕业了,从十月份开始我就要上大学了。高中时,我主要学习C和C++(但只学习MFC应用程序),所以我试图自己学习,这是通过示例和具体问题来理解它的最简单方法。谢谢!我知道了,谢谢。我意识到,在这种情况下,使用Globals类,我会在没有必要的情况下将其复杂化。我是OOP的新手,今年我已经高中毕业了,从十月份开始我就要上大学了。高中时,我主要学习C和C++(但只学习MFC应用程序),所以我试图自己学习,这是通过示例和具体问题来理解它的最简单方法。谢谢!