2016-07-24 42 views
1

我希望能够使用事件添加数字字段,因为我有超过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; 
    } 

回答

0

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(); 
} 
+0

有无论如何要附加到所有的控制,即使通过与标签主题识别 – rogue39nin

+0

谢谢,但它的说法,价值改变不能改变,从int键入任何想法 – rogue39nin

+0

这怎么可能,一个事件处理程序没有任何参数你分配一个方法返回一个值给一个事件? : - | – t3chb0t

0

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

wagesnET.ValueChanged += sumEarnings; 

后计算新的总价值UDPATE适当的控制:

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

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

+0

有没有任何循环类型的aspxpinedit – rogue39nin

+0

没有重载匹配事件后的事情呢? – rogue39nin

+0

@rogueOne你使用devexpress'spinedit? – t3chb0t

相关问题