2016-06-17 30 views
0

私はフォームからクラスに値を渡して、ゲームのレベルを決定していますが、0の値を渡し続けます。フォームとクラスwinformsの間の値の受け渡し

私は値を変更し、他の形でそれを使用しようとする値が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; } 
} 

で「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には、1または2の代わりに0が付きます。どうすればいいですか?

+0

とvariables.nivelElegido = 1 読むと変数を取得して設定し、これが最も簡単でnivelElegidoは、静的にするだろう、おそらく、行うことができるいくつかの方法があります。 – Kevin

+0

'NivelArmando'とは何ですか? – Igor

答えて

1

トップコードはNivelArmandoクラスのようです。もしそうなら、このコード

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

はNivelArmandoの新しいインスタンスを作成され、その場合には、nivelElegidoは0 に初期化されますnivelelegは、ゼロに設定した値が表示されないことになります他の場所で修正されました。

あなたはForm1のプロパティを作成したり、Form1のコンストラクタにnivelElegidoの値を渡し、その後Traelo()関数内でその値を使用する必要があります。

0

variables.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 
関連する問題