2016-05-26 7 views
1

Ich möchte int _iD zu meinem Button Click Event übergeben. Für den Moment habe ich meinen Wert an textbox übergeben und benutze es per Knopfdruck. Gibt es eh die textbox zu umgehen?Übergeben Wert von Klasse zu Schaltfläche klicken Ereignis

public MifarePasswordForm(int _iD) 
{ 
    InitializeComponent(); 
    int iD = _iD; 
    textBox1.Text += iD; 
} 

Button-Click-Ereignis

private void btnOK_Click(object sender, EventArgs e) 
{ 
    byte Oid = Convert.ToByte(textBox1.Text); 
} 
+0

machen Sie eine öffentliche Eigenschaft und verwenden Sie sie. – DDave

+0

meinst du ändern das button click event zu öffentlichkeit? – active92

Antwort

1

eine private Immobilie, wenn beide Methoden in einzelnen Klasse sonst machen öffentliches Eigentum existieren und es verwenden,

public int nID; 

public MifarePasswordForm(int _iD) 
{ 
    InitializeComponent(); 
    nID = _iD; 
    textBox1.Text += iD; 
} 

Button-Click-Ereignis

private void btnOK_Click(object sender, EventArgs e) 
{ 
    byte Oid = Convert.ToByte(nID); 
} 
1

Was Sie derzeit tun, ist Ihre iD eine lokale Variable zu machen (das heißt, bei dem Verfahren/Baumeister scope):

public MifarePasswordForm(int _iD) 
{ 
    InitializeComponent(); 
    int iD = _iD; //here it is, the iD is in the constructor/method scope, 
        //it cannot be accessed outside of the scope 
    textBox1.Text += iD; 
} 

Sie sollten Ihre iD ein private Feld in der Klasse Umfang machen, anstatt in der Methode -umfang:

private int iD; //declare here 
public MifarePasswordForm(int _iD) 
{ 
    InitializeComponent(); 
    iD = _iD; //don't declare here 
    textBox1.Text += iD; 
} 

Damit Sie es wie folgt verwenden können:

private void btnOK_Click(object sender, EventArgs e) 
{ 
    byte Oid = (byte)iD; 
} 
1

Sie sollten diese Variable als Klassenstufe Variable deklarieren:

public class MifarePasswordForm 
{ 
    public int iD {get;set;} // or private field 

    public MifarePasswordForm(int _iD) 
    { 
     InitializeComponent(); 
     iD = _iD; // here you don't create, only use 
     textBox1.Text += iD; 
    } 

    private void btnOK_Click(object sender, EventArgs e) 
    { 
     //inside this method you can use this variable 

     byte Oid = Convert.ToByte(iD); 
    } 

    //other code 
} 

Jetzt können Sie diese Variable in jeder Methode dieser Klasse verwenden.

Verwandte Themen