2017-02-08 46 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

ps. label1顯示正確的值

+0

'prgPressure'定義在哪裏?它是如何定義的?價值在哪裏設定?還有什麼可能會被設置?當你調試時,特別是那個值丟失了嗎? – David

+0

也請解釋爲什麼你通過參考很多參數時a)你不改變它們在任何地方,b)你甚至不使用它們 – Steve

+0

對不起,我不需要prgPressure。價值,我需要壓力。 – user3233536

回答

-1

我解決了它。問題出在第二個功能上。我需要使用button_MouseDown事件。