Как я могу добавить объект к ListBox в C# и WinForms?

Когда я использую Studio управления SQL, я не получаю опцию 'Modify', только 'Дизайн' или 'Редактирование'. Если у Вас есть Visual Studio (я проверил VS.NET 2003, 2 005 & 2008), можно использовать Проводник Сервера для изменения схемы. Щелкните правой кнопкой по таблице и избранной 'Таблице Дизайна' (2008) или 'Открытое Определение Таблицы' (2003, 2005). Выделите полный столбец "Column Name". Можно тогда щелкнуть правой кнопкой и выбрать 'Страницы свойств' или Свойства (2008). Из окна свойств необходимо видеть 'Владельца' (2 003 & 2005) или 'Схема' (2008) с выпадающим списком для возможных схем.

29
задан Hille 12 April 2018 в 13:09
поделиться

7 ответов

list.Items.add(new ListBoxItem("name", "value"));

Внутренняя (по умолчанию) структура данных ListBox - это ListBoxItem .

14
ответ дан 28 November 2019 в 00:58
поделиться

Вы можете проверить этот вопрос SO:

C # - WinForms - Как правильно загружать ListBox?

8
ответ дан 28 November 2019 в 00:58
поделиться

В WinForms, ValueMember и DisplayMember используются при привязке данных к списку. Если вы не связываете данные, вы можете добавить любой произвольный объект как ListItem .

Загвоздка в том, что для отображения элемента на нем будет вызываться ToString () . Таким образом, настоятельно рекомендуется добавлять объекты в ListBox только тогда, когда вызов ToString () приведет к значимому результату.

9
ответ дан 28 November 2019 в 00:58
поделиться

DisplayMember и ValueMember в основном полезны только при привязке данных к объектам, для которых эти свойства определены. Затем вам нужно будет добавить экземпляр этого объекта.

например:

public class MyObject
{
     public string clan { get; set; }
     public int sifOsoba { get; set; }
     public MyObject(string aClan, int aSif0soba)
     {
        this.clan = aClan;
        this.sif0soba = aSif0soba;
     }

     public override string ToString() { return this.clan; }
 }

 ....

 list.Items.Add(new MyObject("hello", 5));

Если вы привязываете его вручную, вы можете использовать пример, предоставленный goggles

6
ответ дан 28 November 2019 в 00:58
поделиться

MSBuild (что VisualStudio использует для сборки) может предоставить вам эту информацию. Включите в свой msbuild.exe вызов переключателя PerformanceSummary :

msbuild.exe your.sln /clp:PerformanceSummary ...

Это даст вам что-то вроде этого в конце журнала выполнения сборки:

Project Performance Summary:
      374 ms  your.sln  1 calls

Target Performance Summary:
...
      109 ms  GetWinFXPath                               1 calls
      156 ms  EntityDeploy                               1 calls
      390 ms  Build                                      2 calls
...
Time Elapsed 00:00:00.43

Если вам нужен файл, содержащий только эту информацию, вместо того, чтобы записывать его на консоль, Также обратите внимание, что вы можете использовать все (что в любом случае наследуется от объекта (а это почти все)) в Коллекции элементов.

5
ответ дан 28 November 2019 в 00:58
поделиться

Вы должны создать элемент типа ListBoxItem и добавить его в коллекцию Items:

list.Items.add( new ListBoxItem("clan", "sifOsoba"));
1
ответ дан 28 November 2019 в 00:58
поделиться

Если вы добавляете целые числа, как вы говорите в своем вопросе, это добавит 50 (от 1 до 50):

for (int x = 1; x <= 50; x++)
{
   list.Items.Add(x);
}

Вам не нужно устанавливать DisplayMember и ValueMember, если вы не добавляете объекты с определенными свойствами, которые вы хотите отобразить для пользователя. В вашем примере:

listbox1.Items.Add(new { clan = "Foo", sifOsoba = 1234 });
1
ответ дан 28 November 2019 в 00:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: