2017-02-08 5 views
-1

私のプログラムに悩まされています。私は、コードのこの部分を持っている:ボタンをクリックした後に変数を使用する方法

public void PacketArrival(ref IntPtr ContextHandle, ref int Cursor_Renamed, 
      ref int X , ref int Y , ref int Z, ref int Buttons, 
      ref int Pressure , ref int TangentPressure, ref int Azimuth, 
      ref int Altitude, ref int Twist, ref int Pitch , ref int Roll , 
      ref int Yaw,ref int PacketSerial, ref int PacketTim) 
{ 
    tmpl = System.Math.Abs(X); 

    if(tmpl != prgX.Value) 
    { 
     if(tmpl <= prgX.Maximum) 
      prgX.Value = tmpl; 
    } 
    tmpl = System.Math.Abs(Y); 
    if(tmpl != prgY.Value) 
    { 
     if(tmpl <= prgY.Maximum) 
     prgY.Value = tmpl; 
    } 
    tmpl = System.Math.Abs(Z); 
    if(tmpl != prgZ.Value) 
    { 
     if(tmpl <= prgZ.Maximum) 
     prgZ.Value = tmpl; 
    } 
    tmpl = System.Math.Abs(Pressure); 
    if(tmpl != prgPressure.Value) 
     prgPressure.Value = tmpl; 

    if(Convert.ToInt32(lblX.Text)!= X) 
     lblX.Text = X.ToString(); 
    if(Convert.ToInt32(lblY.Text)!= Y) 
     lblY.Text = Y.ToString(); 
    if(Convert.ToInt32(lblZ.Text)!= Z) 
     lblZ.Text = Z.ToString(); 
    if(Convert.ToInt32(lblPressure.Text)!= Pressure) 
     lblPressure.Text = Pressure.ToString(); 

    if (Pressure !=0) 
    { 
     File.AppendAllText("test2.txt", Pressure.ToString() + Environment.NewLine);    
    } 

    label1.Text = Pressure.ToString(); 

} 

私は

private void button2_Click(object sender, EventArgs e) 
{ 
    label5.text = Pressure.ToString(); 
} 

をボタンをクリックしないときだから私は、使用圧力をしたいしかし、私は常に値として0を取得します。申し訳ありません私の英語で 圧力は、コードの最初の部分にのみ、どこにも現れません。あなたが見ることができるように、圧力もファイルに書かれていますが、ボタンをクリックした後に使いたいときは、常に0を表示します。

p.s. label1は正しい値を示します

+0

'' prgPressure'はどこに定義されていますか?どのように定義されていますか?その値はどこに設定されていますか?他にどこに設定されている可能性がありますか?これをデバッグすると、具体的にその値が失われる場所はどこですか? – David

+0

また、なぜあなたはrefで多くのパラメータを渡すのか説明してください。a)どこにも変更しないでください。b)使用していない人もいます。 – Steve

+0

申し訳ありませんが、prgPressureは必要ありません。価値、私は圧力が必要です。 – user3233536

答えて

-1

私はそれを解決しました。問題は2番目の機能でした。私はボタンを使用する必要がありますbutton_MouseDownイベント。

関連する問題