我应该如何将事件附加到已更改的值

本文关键字:事件 我应该 | 更新日期: 2023-09-27 17:58:30

我希望能够使用一个事件添加数字字段,因为我已经有50多个了。我不想在每个字段中添加事件。有更好的方法吗。此外,我似乎无法让sumEarnings被编译器重新配置,有人有什么建议吗。

protected void Page_Load(object sender, EventArgs e)
    {

        wagesnET.ValueChanged += sumEarnings();
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        StringDictionary KeyValue = new StringDictionary();
        KeyValue.Add("", "");

        foreach (string key in Request.Form)
        {
            if (!key.StartsWith("checkbox")) continue;

        }

    }
    private void  sumEarnings(object sender, EventArgs e)
    {
        int total = Convert.ToInt16(wagesnET.Text) + Convert.ToInt16(partnerearningscic.Text);
        return total;
    }

我应该如何将事件附加到已更改的值

sumEarnings是一个没有返回类型的方法,将其更改为

private int sumEarnings()
{
    return Convert.ToInt16(wagesnET.Text) + Convert.ToInt16(partnerearningscic.Text);
}

若要从代码中将其附加到多个控件,可以使用枚举器。例如:

foreach (Control c in this.Controls)
{
    //if (c is TextBox) 
    c.ValueChanged += sumEarnings();
}

您需要从事件处理程序分配中删除()

wagesnET.ValueChanged += sumEarnings;

计算出新的总值后,请选择适当的控件:

private void sumEarnings(object sender, EventArgs e)
{
    int total = Convert.ToInt16(wagesnET.Text) + Convert.ToInt16(partnerearningscic.Text);  
    // todo: update the total value...
}

不可能有一个同时返回值的事件处理程序。