c#当我按下checklistboxes时,如何获取我的列表框项并快速添加它

时间:2017-09-11 08:27:32

标签: c# forms listbox checklistbox

enter image description here

您好我仍然对此如何获取我的列表框项目感到困惑,当我点击每个checklistboxes并且我想在文本框中添加数字和显示时。例如,我检查checklistbox索引1,其中包含300它显示在文本框中。然后我检查我的复选框列表中的索引2包含100然后它显示400.然后如果我检查我的复选框列表中的索引3包含200它在复选框中显示600.

我的代码:

namespace ggg
{
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();


    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {

        listBox1.Items.Clear();
        listBox2.Items.Clear();
        textBox1.Clear();
        foreach (string s in checkedListBox1.CheckedItems)
        listBox1.Items.Add(s);
        foreach (int i in checkedListBox1.CheckedIndices)
        {
            if (i == 0)
            {
                listBox2.Items.Add(300);
                decimal total = 300;
                textBox1.Text += total;
            }
            if (i == 1)
            {
                listBox2.Items.Add(100);
                decimal total = 100;
                textBox1.Text += total;
            }
            if (i == 2)
            {
                listBox2.Items.Add(200);
                decimal total = 200;
                textBox1.Text += total;

            }
        }


    }



}
}

2 个答案:

答案 0 :(得分:0)

此代码可能会完成您的工作。还有更好的方法来做你想要的。但是,这也是一个很好的解决方案!将您的文本框名称视为myTextBox

private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    int sum = 0; // Add a variable to capture the sum

    listBox1.Items.Clear();
    listBox2.Items.Clear();
    textBox1.Clear();
    foreach (string s in checkedListBox1.CheckedItems)
    listBox1.Items.Add(s);
    foreach (int i in checkedListBox1.CheckedIndices)
    {
        if (i == 0)
        {
            listBox2.Items.Add(300);
            sum += 300; // Add the value to sum
        }
        if (i == 1)
        {
            listBox2.Items.Add(100);
            sum += 100; // Add the value to sum
        }
        if (i == 2)
        {
            listBox2.Items.Add(200);
            sum += 200; // Add the value to sum
        }
    }

    // Finally, show the sum in text box
    myTextBox.Text = sum.ToString();
}

答案 1 :(得分:0)

您可以将列表框项目汇总为此。之后,您可以将总数设置为文本框

        int total = 0;
        for (int i = 0; i < listBox2.Items.Count; i++)
        {
            total = total+ int.Parse(listBox2.Items[i].ToString());
        }
        textBox1.Text = total.ToString();