我正在开展一个项目,我希望在表单之间发送值,但是我遇到了问题。
表格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”
当前上下文中不存在名称“性别”
当前上下文中不存在“Gold'does”这个名称
我尝试将Skattkista skatt = new Skattkista(Namn, Gender, Gold);
放在构造函数上,但是当单击图片时我无法打开表单。
我想要的只是打开一个新表格,并在点击图片时用它发送三个值
答案 0 :(得分:2)
看起来您的变量可能具有您创建它们的方法的局部范围,而不是表单本身的全局范围。没有更多代码,我无法分辨。一个建议是尝试给每个表单全局属性
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();
}
Click事件
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();
}