我想将一个复选框控件添加到列表框控件中。
列表框必须包含几项任务,我必须检查之前是否已打开任务。
我有一个代码示例,但它将复选框添加为对象,而不是控件
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, 鲁
答案 0 :(得分:12)
Compact Framework不支持CheckedListBox控件。您可以使用ListView将CheckBoxes属性设置为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;
}
}