2014-09-23 101 views
-1

我有一个CheckBoxes列表,点击它们后状态不会更新。 为什么会发生这种情况,我该如何修复?点击C#WinForms后CheckBox状态不会更新

  private List<CheckBox> blocks_check_boxes = new List<CheckBox>(); 

      count = blocks_from_database.Count; 
      /* Display check boxes for each block*/ 
      for (int i = 0; i < blocks_from_database.Count; i++) 
      { 
       blocks_check_boxes.Add(new CheckBox()); 
       this.blocks_check_boxes[i].AutoSize = true; 

       this.blocks_check_boxes[i].Name = blocks_from_database[i].name; 
       this.blocks_check_boxes[i].Size = new System.Drawing.Size(80, 17); 
       this.blocks_check_boxes[i].TabIndex = 3 + i; 
       this.blocks_check_boxes[i].Text = blocks_from_database[i].name; 
       this.blocks_check_boxes[i].UseVisualStyleBackColor = true; 
       this.blocks_check_boxes[i].AutoCheck = true; 


      } 

谢谢

+0

为此使用'CheckedListBox'会更有意义吗? – jmcilhinney 2014-09-23 11:07:01

回答

0

也许你正在以意外方式重新创建的复选框。

也许你想将“AutoPostBack”属性设置为“true”。

当我们没有看到更多的代码时,很难理解是什么导致了你的问题。当你检测到你的问题时,以及上面的代码执行的地点和时间,再解释一下。

+0

创建此列表后,我将一些元素标记为已选中。 – Adina 2014-09-23 11:56:14

+0

foreach(blocks_check_boxes中的复选框) if(box.Name.Trim()== line.Trim()) box.Checked = true; – Adina 2014-09-23 11:57:32

+0

之后,我只有在用户有机会检查框并按下按钮之后才使用它。在按下按钮之后,我将所有选中的项目写入文件中,这里是出现问题的位置,因为有框选中的值是我使用上面的代码检查的值。 – Adina 2014-09-23 12:04:59