2016-07-24 64 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

相關問題