.NET Compact框架(C#):向Listbox添加复选框

时间:2009-04-20 13:01:43

标签: c# compact-framework listbox checkbox

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

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

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

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);
}

有人可以帮助我吗

日Thnx, 鲁

4 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:1)

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

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

你可能想查看“CheckedListBox”控件,虽然我不确定它是否存在于CompactFramework中。

答案 2 :(得分:1)

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

N.B。我知道很久以前就问了这个问题,但我们最近被要求为其中一个设备编写新软件,所以我想,即使你不再需要解决这个问题,也有其他人可能会受益于这个。

答案 3 :(得分:0)

使用库存控件的唯一其他选项是使用Panel并手动执行布局,并将AutoScroll设置为true。您可以继承Panel以显示您自己的添加/删除类型方法,以便在添加和删除项目时执行布局。您可以使用类似下面的样本来布局列表。使用这种方法,您现在可以使用任何类型的Control组合您的列表,但是您放弃了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;
        }
    }