我正在尝试将一个值从一个表单传递给一个类来确定游戏的级别,但它会一直传递0值。
我需要通过" nivelElegido"值为1或2
int nivelElegido;
private void pictureBox1_Click(object sender, EventArgs e)
{
nivelElegido = 1;
Form1 frm = new Form1();
frm.Show();
this.Hide();
}
private void pictureBox2_Click(object sender, EventArgs e)
{
nivelElegido = 2;
Form1 frm = new Form1();
frm.Show();
}
public int niveEle
{
get { return nivelElegido; }
}
我更改了值,在另一种形式中尝试使用它。
using (var nivelarmando = new NivelArmando())
{
niveleleg = nivelarmando.niveEle;
}
pala.nivo = niveleleg;
pala.Traelo();
pala.traelo
从类中提取数据,pala.nivo
是级别。
public void Traelo()
{
if (nivo==1)
{
}
else if (nivo==2)
{
}
但是nivo
带有0而不是1或2.我该怎么办?
答案 0 :(得分:1)
看起来顶级代码来自NivelArmando类。如果是这样,这段代码
using (var nivelarmando = new NivelArmando())
{
niveleleg = nivelarmando.niveEle;
}
正在创建一个新的NivelArmando实例,在这种情况下, nivelElegido 将被初始化为0. niveleleg 将被设置为零并且看不到值你在其他地方修改过。
您应该在Form1上创建一个属性,或者将 nivelElegido 的值传递给Form1的构造函数,然后在 Traelo()函数中使用该值。
答案 1 :(得分:0)
使用variables.nivelElegido = 1获取并设置变量 阅读变量.nivelElegido
Public Class variables
Public Shared Property nivelElegido() As Integer
Get
Return m_nivelElegido
End Get
Set(value As Integer)
m_nivelElegido = value
End Set
End Property
Private Shared m_nivelElegido As Integer
End Class