在Windows窗体之间发送值
本文关键字:之间 Windows 窗体 | 更新日期: 2023-09-27 18:15:46
我正在做一个项目,我想在表单之间发送值,但是我遇到了一个问题。
形式1:
public Vägval(string name, string gender, int gold)
{
InitializeComponent();
ChoosePicture(gender);
tname.Text = name;
string Namn = name;
string Gender = gender;
int Gold = gold;
tMynt.Text = gold.ToString();
tLife.Text = 5.ToString();
Skattkista skatt = new Skattkista(Namn, Gender, Gold);
}
当图片被点击时,我想打开第二个表单并发送三个值:名称,性别和黄金。
private void pictureBox1_Click(object sender, EventArgs e)
{
Skattkista skatt = new Skattkista(Namn, Gender, Gold);
skatt.Show();
}
但是我在这里得到错误:
名称"Namn"在当前上下文中不存在
名称"Gender"在当前上下文中不存在
名称'Gold'在当前上下文中不存在
我试着把Skattkista skatt = new Skattkista(Namn, Gender, Gold);
放在构造函数上,但当图片被点击时,我无法打开表单。
我所要做的就是打开一个新表单,并在点击图片时发送三个值
看起来,您的变量可能具有您在其中创建它们的方法的局部作用域,而不是表单本身的全局作用域。没有更多的代码我无法判断。一个建议是尝试给每个表单全局属性
public string Namn {get; set;}
public string Gender {get; set;}
public int Gold {get; set;}
你的构造函数应该是这样的
public Vägval(string name, string gender, int gold)
{
InitializeComponent();
ChoosePicture(gender);
//assigns all the properties
this.Namn = name;
this.Gender = gender;
this.Gold = gold;
//Set GUI
tname.Text = name;
tMynt.Text = gold.ToString();
tLife.Text = 5.ToString();
}
点击事件
private void pictureBox1_Click(object sender, EventArgs e)
{
//Create new form object using Vagval properties and show it
Skattkista skatt = new Skattkista(this.Namn, this.Gender, this.Gold);
skatt.Show();
}