将值从类传递到按钮单击事件

时间:2016-05-26 06:37:06

标签: c#

我想将int _iD传递给我的按钮点击事件。现在,我已将我的值传递给textbox并在按钮点击时使用它。无论如何都可以绕过textbox

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

按钮点击事件

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

3 个答案:

答案 0 :(得分:1)

如果两个方法都存在于单个类中,则创建一个私有属性,然后创建公共属性并使用它,

public int nID;

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

按钮点击事件

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

答案 1 :(得分:1)

您目前所做的是使iD成为局部变量(即在方法/构造函数范围内):

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;
}

您应该在范围内而不是方法范围内设置iD private字段:

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

这样你就可以这样使用它了:

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

答案 2 :(得分:1)

您应该将此变量声明为类级别变量:

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
}

现在,您可以在此类的任何方法中使用此变量。