WedX - журнал о программировании и компьютерных науках

Визуальные объекты, которые меняют размер в С#, отображаются в линейном списке

Пожалуйста, простите мои глупые слова. Я исхожу из фона Actionscript3.

Я использую «Visual C# 2010 Express». У меня есть простая форма in a WindowsForm Project, которая в настоящее время содержит только список. (Который я предполагаю, что мне придется изменить на что-то другое).

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

Но я даже не могу дойти до отображения UserControl в виде списка. Кажется, я не могу найти нигде в списке, чтобы сказать «Используйте этот объект отображения в качестве визуального элемента для списка». Я вижу учебники, в которых говорится «ItemsPanelTemplate», но я получаю сообщение об ошибке, говорящее, что для списка нет такого свойства. Я даже пытался создать форму в представлении «Дизайн», но ее нет в списке внизу графического интерфейса, когда я перетаскивал ее как список на экран.

Теперь я знаю, как это сделать в чистом ActionScript, но не знаю, как это сделать в Pure C#. Учебники не помогают, так как весь сайт Microsoft, кажется, пытается дать мне XAML (XML). и я ищу код С#. Поэтому я бросил полотенце и умолял о помощи извне.

Спасибо за любую помощь, которую вы можете оказать.

17.01.2012

  • Это проект WindowsForms? 17.01.2012
  • Да, это. Извините, забыл упомянуть об этом. Я добавлю это. 17.01.2012
  • Вы обязаны использовать WinForms? WPF (=XAML) сделал бы такие вещи НАМНОГО проще... 17.01.2012
  • Мне не нравится, когда XML используется для кода. Пожалуйста, предпочел бы реальный код. 17.01.2012
  • Тогда вам нужно перестать читать книги и учебные пособия по WPF и использовать способ Winforms. Используйте ListBox или ListView с View = List. 17.01.2012
  • Я пытался НЕ читать WPF, но все это находит в Google. :(.. Я пытаюсь использовать ListBox. Это КАК я прошу помощи. Я посмотрю на ListView. Спасибо. 17.01.2012
  • @WORMSS => WinForms не дает вам доступа к шаблону управления, поэтому вы не сможете настроить панель элементов. Это вещь WPF. Если вам нужно использовать Google для устаревших технологий, попробуйте добавить «WinForms» к своим критериям поиска... 17.01.2012
  • Я уже далеко впереди вас. Я вижу много мест, где спрашивают, но никто не имеет ответа. Вот почему я спрашиваю здесь. Я думаю, что могу просто отказаться от всего проекта и построить его в Adobe Air. Это позволяет вам делать все, что вы хотите. 17.01.2012

Ответы:


1

Похоже, вам нужен список элементов, каждый из которых имеет флажок и некоторый описательный текст. Попробуйте использовать элемент управления CheckedListBox. ссылка MSDN.

Этот вопрос также отвечает на вопрос о том, как для создания пользовательского изображения для каждого элемента в ListBox. Это может быть полезно.

Изменить после уточнения:

Попробуйте встроить UserControl в ListView, а не в ListBox. Ссылки на встраивание элементов управления в ListViews:

C# listview — встраивание элементов управления

Добавление кнопки в список в WinForms

Вы также можете использовать список панелей, каждая из которых содержит пользовательский элемент управления.

Список панелей C#

Но реальный ответ, как видно из комментариев к вопросу, заключается в том, что у Winforms нет удобного способа сделать это. Эта задача гораздо лучше подходит для WPF.

17.01.2012
  • Вы не читали (More will be added once I get over the hurdle below) 17.01.2012
  • Я делаю пользовательский элемент управления, it currently only has a checkbox and title, он БУДЕТ иметь кнопки, дополнительные флажки, группы, расширяемые разделы. Но так как я еще не мог показать простой пользовательский элемент управления, не было смысла делать сложный бит. Я просто хочу дать Listbox ссылку на класс или что-то в этом роде, а затем сказать навсегда часть данных в списке, создать новый объект этого класса и передать ему данные. Это только кажется слишком сложным. 17.01.2012
  • Спасибо. Я заглянул в WPF и снова не смог найти способ легко указать простому списку, что используемый объект является определенным классом. Меня останавливало непонимание уроков. Я полностью изменил язык и собираюсь использовать Adobe Air. Это можно сделать так же просто, как ListComponent.displayClass = myCustomClass. Спасибо за вашу помощь Эсо. Я дал вам +1 и ответ за все ваши проблемы. 18.01.2012
  • Ваше здоровье. Спасибо также за разъяснение того, что вы пытались сделать, извините, я сначала не понял. 18.01.2012

  • 2

    Вы можете воспользоваться бесплатным компонентом Better ListView Express от ComponentOwl. Он поддерживает простое представление сведений без столбцов, флажков с двумя и тремя состояниями, изображений и многого другого...

    Они также предлагают полную версию с еще более приятными функциями, такими как иерархические и многострочные элементы.

    01.02.2012
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]