【问题标题】:Determining (de)selected checkbox in a checkedListBox as they are selected在选中的列表框中确定(取消)选中的复选框
【发布时间】:2019-08-13 09:54:59
【问题描述】:

我希望在 C# 中设置一个checkedListBox。这个checkedListBox 中将显示大约50 个名称。我想要它,以便选择或取消选择名称,然后程序将能够将其存储在变量中。

我已经有了代码,这样当一个按钮被按下时,它会搜索checkedListBox中的所有名称并返回所有处于选中状态的名称:

for (int i = 0; i < nameBox.CheckedItems.Count; i++)
{
          ArrayList.Add(nameBox.CheckedItems[i]);
}

我知道在 Java 中我可以使用 e.getStateChange() 来确定已选择或取消选择的项目:

public void itemStateChanged(ItemEvent e) 
{
        if(e.getStateChange() == ItemEvent.SELECTED)
    {
              ArrayList = checkbox.getText();
        }    
}

我可以在 C# 中为checkedListBox 使用类似于此Java 代码的任何内容吗?

任何帮助/建议将不胜感激!

【问题讨论】:

标签: c# winforms checkedlistbox


【解决方案1】:

建立在评论和链接的基础上,这有你在例子中需要的一切:

在您的表单中添加私有变量,例如 List:

 public class Form1 : System.Windows.Forms.Form
   {
      private System.Windows.Forms.CheckedListBox checkedListBox1;
      private List<string> extraVariable;

然后在您的构造函数或初始化 checkList 的任何地方,也初始化您的额外变量:

      public Form1()
      {
         InitializeComponent();

         extraVariable = new List<string>();

然后添加您的 ItemChecked 事件,您可以在其中添加或删除额外变量:

      private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
      {
         if(e.NewValue==CheckState.Unchecked)
         {
            extraVariable.Remove(e.NewValue);
         }
         else
         {
            extraVariable.Add(e.NewValue);
         }
      }

【讨论】:

  • 非常感谢,可能我很愚蠢,但不幸的是,这只是分配“已检查”或“未检查”的值 - 我怎样才能拥有它以便它分配文本的值与复选框一起提供?即,已选择/取消选择的名称...
  • 啊,为此,请在此处查看更多信息:stackoverflow.com/a/2535652/11605410
  • 完美 - 今天下午我会试一试 - 感谢您的帮助! :)
猜你喜欢
  • 1970-01-01
  • 2014-05-04
  • 2013-11-04
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多