2015-04-01 23 views
0

我對所有這些編程和c#windows應用程序都很陌生,所以對我來說很簡單。如何將值賦給複選框並在公式中使用它?

基本上我有13個複選框我要分配值,所以當複選框被選中的那些值進入一個公式:

consumption = energy * 15/1000 

的「能量」是表示所對應的複選框。我希望所有檢查的checkBoxes值都去那裏。

如果它不可能分配一個值,那麼最好的方法是什麼?

我所知道的唯一的辦法是做每一個執行以下操作:

if (checkBox1.CheckState == CheckState.Checked) 
{ 
     energy += energy + 1200; 
} 

我願做一個foreach方法,但我不知道怎麼樣。

+1

首先,我想你想'能源+ = 1200'或'能量=能量+ 1200',第二,如果複選框未被選中,能量會丟失嗎?(能量 - = 1200)'? – chancea 2015-04-01 22:05:28

+0

沒有它的唯一正面。所以如果未經檢查的能量= 0 – smiley 2015-04-01 22:16:38

回答

0

您可以將值存儲在複選框控件的Tag屬性中,並且您可以對Form.Controls執行foreach檢查它是否是CheckBox的一個實例並執行您的邏輯。

一個例子

int energy = 0; 
foreach(Control control in this.Controls) 
{ 
    //you can have additional checks like name starts with to identify energy checkboxes 
    if (control is CheckBox) 
    { 
     energy = energy + Convert.ToInt32(control.Tag); 
    } 
} 
0

如果喲恰好有13複選框控制,你可以做這樣

首先,你必須在每一個複選框的CheckedChanged事件設置爲下一事件

private void All_CheckedChanged(object sender, EventArgs e) 
    { 
//Check if all the checkboxes are checked 
     if(checkBox1.Checked && checkBox2.Checked ... && checkbox13.Checked) 
     { 
//If they are checked calculate your value with your formula 
      var energy = EvaluateEnergy(); 
     } 
    } 

然後EvaluateEnergy可以是這樣的

private int EvaluateEnergy() 
    { 
     var energy = 0; 
     if(checkBox1.Checked) 
     { 
      //Assign to every check box a energy value e.g 10 
      energy += 10; 
     } 

     if(checkBox2.Checked) 
     { 
      //e.g 20 
      energy += 20; 
     } 
     ...... 
     return energy + 1600; 
    } 
0

因此,假設energy是你們班的成員,你必須計算消費等的方法:

public partial class Form1 : Form 
{ 
    private double energy; 
    .... 
    public double consumption 
    { 
     get { return energy*15.0/1000; } 
    } 

(注意雙和15.0/1000因爲15/1000是整數除法和爲0)

然後,您可以爲所有複選框添加一個事件,該事件在每次選中或取消選中時按1200遞增/遞減energy

private void CheckedChanged(object sender, EventArgs e) 
{ 
    energy += ((CheckBox) sender).Checked ? 1200 : -1200; 
} 

(能量等於0時,所有的選項都被取消)

,你可以在設計時添加到每個複選框:

enter image description here

相關問題