C# 从另一个事件调用varialble

C# 从另一个事件调用varialble,c#,variables,C#,Variables,如何在其他事件中调用变量(专用标签ccc;): private Label ccc; protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { Label Label1 = FindControlRecursive(Page, DropDownList1.SelectedValue) as Label; if (Label1 != null)

如何在其他事件中调用变量(专用标签ccc;):

private Label ccc;

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {

        Label Label1 = FindControlRecursive(Page, DropDownList1.SelectedValue) as Label;
        if (Label1 != null)
            this.ccc = lblCont;
            this.ccc.Text = Label1.Text;
    }


 public void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {


          this.ccc.Text = lblCont.Text;


            int bbb = Convert.ToInt32(lblCont.Text) - Convert.ToInt32(tbEnter.Text);
            if (bbb >= 0)
            {
                lblCont.Text = Convert.ToString(bbb);

            }
            else
            {
                ErrorDisplay.Text = "There are not enough tickets";
            }
        }
    catch (Exception ex)
    {
        ErrorDisplay.Text = ex.Message;
    }


}
我不能调用this.ccc.Text=lblCont.Text在“公共无效BTNSUPMIT_Click”中

确实如此(对象引用未设置为对象的实例。)


Thakns

在尝试修改.Text属性之前,必须为ccc标签字段指定一个值。因为ccc没有指向任何东西,所以你得到了那个异常


在调用btnSubmit_Click函数之前,确保为ccc字段分配了一个Label对象,或者在函数内部执行任何操作之前分配该对象。

除了Nick的答案外:

DropDownList1\u SelectedIndexChanged事件不保证在每次回发时触发-如果用户提交页面而不更改选择,则this.ccc将为空。即使this.ccc是在以前的回发中分配的,如果下拉列表选择没有更改,它也不会在当前回发中

因此,您需要确保在其他地方为其分配一个Label实例。例如,在页面加载中,甚至在btnSubmit中,在您的this.ccc.Text=lblCont.Text之前单击