1

我想将复选框控件添加到列表框控件。

列表框必须包含几个任务,我必须检查之前是否打开过任务。

我有一个代码示例,但它将复选框添加为对象,而不是控件

while (reader.Read())   
{                    
   CheckBox c = new CheckBox().Enabled = false;
   c.Text = reader.GetString(0) + ". " + reader.GetString(1);

   try 
   { 
      if (int.Parse(reader.GetString(2)) > 1) c.Checked = true; 
   } 
   catch(Exception ex)    
   {

      MessageBox.Show(ex.Message);    
   }    
   listTasks.Items.Add(c);
}

有人可以帮我吗

谢谢,鲁本

4

4 回答 4

12

Compact Framework 不支持 CheckedListBox 控件。您可以使用将CheckBoxes属性设置为 true的ListView 。

于 2009-04-20T13:11:50.827 回答
1

列表框仅支持字符串 ListItems 的集合。

以这种方式向其添加复选框将导致出现 checkbox.ToString() 值。

您可能想查看“CheckedListBox”控件,但我不确定 CompactFramework 中是否存在该控件。

于 2009-04-20T13:07:04.677 回答
1

Resco Mobileforms Toolkit允许您执行此操作。该软件包不是,但它确实具有此功能(以及使 CF 应用程序感觉比标准 Windows Mobile 应用程序好得多的一些其他有用的位)。

注意我知道这个问题很久以前就被问过了,但我们最近被要求为其中一种设备编写新软件,所以我认为即使您不再需要解决这个问题,还有其他可能会受益的问题由此。

于 2011-11-15T03:43:16.100 回答
0

使用库存控件的唯一其他选择是使用 Panel 并手动执行布局,并将 AutoScroll 设置为 true。您可以将 Panel 子类化以公开您自己的 Add/Remove 类型方法,以便在添加和删除 Items 时执行布局。您可以使用类似下面的样本来布局列表。使用这种方法,您现在可以使用任何类型的控件来组成列表,但您会失去 ListBox 的编程便利性。我想您可以在必要时将此类功能添加到 Panel 子类中。

        public static void VerticalListLayoutStrategy(Panel panel)
    {
        int top = 0;
        foreach (Control control in panel.Controls)
        {
            control.Location = new Point(0, top);
            control.Width = panel.ClientSize.Width;
            top += control.Height;
        }
    }
于 2011-11-15T14:15:25.903 回答