在形式和级别的winforms之间传递价值



我正在tray tray将值从表单传递到类,以确定游戏的级别,但是它一直以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。我该怎么办?

看起来顶部代码来自Nivelarmando类。如果是这样,此代码

 using (var nivelarmando = new NivelArmando())
 {
     niveleleg = nivelarmando.niveEle;
 }

正在创建Nivelarmando的新实例,在这种情况下,Nivelelegido 将初始化为0。您修改了其他地方。

您应该在form1上创建一个属性,或将 nivelelegido的值传递给form1的构造函数,然后在 traelo()函数中使用该值。

获取并设置变量。使用变量阅读。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

相关内容

  • 没有找到相关文章

最新更新