.NET Compact framework (C #): добавить флажок в список - PullRequest
1 голос
/ 20 апреля 2009

Я хотел бы добавить элемент управления флажок в элемент управления списка.

Список должен содержать пару задач, и я должен проверить, были ли ранее открыты задачи.

У меня есть пример кода, но он добавляет флажок как объект, а не как элемент управления

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, Ruben

Ответы [ 4 ]

12 голосов
/ 20 апреля 2009

Compact Framework не поддерживает элемент управления CheckedListBox. Вы можете использовать ListView со свойством CheckBoxes , установленным в true.

1 голос
/ 15 ноября 2011

Resco Mobileforms Toolkit позволяет вам сделать это. Пакета нет, но у него есть эта функциональность (а также несколько других полезных моментов, которые заставляют приложения CF чувствовать себя намного лучше, чем стандартные приложения Windows Mobile).

N.B. Я знаю, что этот вопрос задавался очень давно, но недавно нас попросили написать новое программное обеспечение для одного из этих устройств, поэтому я считаю, что даже если вам больше не нужно решать эту проблему, есть другие, которые могут извлечь выгоду из это.

1 голос
/ 20 апреля 2009

Список только поддерживает коллекцию строк ListItems.

Добавление флажка таким образом приведет к появлению значения checkbox.ToString ().

Возможно, вы захотите взглянуть на элемент управления «CheckedListBox», хотя я не уверен, существует ли он в CompactFramework.

0 голосов
/ 15 ноября 2011

Единственным другим вариантом использования элементов управления запасами является использование Panel, выполнение макета вручную и установка AutoScroll в значение true. Вы можете создать подкласс Panel для предоставления собственного метода типа «Добавить / удалить» для выполнения макета при добавлении и удалении элементов. Вы можете использовать что-то вроде образца ниже, чтобы создать список. При таком подходе вы можете теперь составлять свой список с любым видом элемента управления, но вы теряете удобство программирования 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;
        }
    }
...