C#中的复选框列表

时间:2014-03-18 18:16:31

标签: c#

我在下面写了一个带有复选框的程序。哪个工作正常。但是我想把它写在一个checklistbox中,但不知道如何检查第一个checklistbox被检查或第二个。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
                MessageBox.Show("CheckBox1 is checked");
            if (checkBox2.Checked)
                MessageBox.Show("CheckBox2 is checked");
        }
    }
}

编辑:它是一个Windows窗体应用程序。

1 个答案:

答案 0 :(得分:2)

试试这个:

foreach (var item in checkedListBox1.CheckedItems)
{
    /* iterate over all checked items from the checkedlistbox */
    MessageBox.Show(item.ToString());
}

编辑:如果您想根据所选项目执行某些操作 试试这个:

foreach (int item in checkedListBox1.CheckedIndices)
{
    switch (item)
    {
        case 0:/*first item selected here do something*/
            MessageBox.Show("1st item selected");
            break;

        case 1:/*first item selected here do something*/
            MessageBox.Show("2nd item selected");
            break;

        case 2:/*first item selected here do something*/
            MessageBox.Show("3rd item selected");
            break;
    }
}

<强>解释

来自MSDN:CheckedListBox.CheckedIndices Property

  

此CheckedListBox中已检查索引的集合。

     

已检查索引的集合是索引的子集   CheckedListBox控件中所有项的集合

SelectedIndices会返回selectedindex中的Checkedlistbox值。 例如,如果checkedlistbox中有10个项目,如果选择项目1,项目5和项目7,则它将返回各自的index值(索引始终以0开头)。

所以它返回0,4,6。