Хобрук: Ваш путь к мастерству в программировании

Можно ли установить проверенный элемент списка в смешанное состояние?

Элемент управления CheckBox предоставляет как логические свойства Checked, так и System.Windows.Forms.CheckState enum CheckState, которые позволяют установить элемент управления в проверенное, непроверенное или смешанное состояние (значение перечисления Indeterminate).

Я хочу установить состояние элемента ListView в Indeterminate, но, похоже, доступно только свойство Checked. Итак, есть ли способ установить смешанный режим, возможно, с помощью оконных сообщений или подобных трюков?


Ответы:


1

Ну, вы можете использовать следующий обходной путь:

  1. Создать состояние ImageList с 3 состояниями (вы можете создавать изображения, используя CheckBoxRenderer)
  2. Назначьте этот список изображений для просмотра списка
  3. Затем вам нужно обработать события OnMouseDown (или OnMouseClick) и OnKeyDown и сместить изображения состояния для необходимого элемента списка.

Конечно, вам также нужно написать несколько вспомогательных методов для получения проверенного состояния и т. д. Но в целом это решение относительно легко реализовать.

На самом деле внутренняя реализация ListView делает то же самое, но эта логика скрыта внутри comctl32.dll.

26.06.2009
  • Это было недавно, но я думаю, что забыл принять этот ответ. В итоге я накатил свой собственный элемент управления в соответствии с этим процессом и поместил его в свой пакет Aero.Control с лицензией BSD: factormystic.net/projects/code/aero.controls 23.06.2010

  • 2

    ObjectListView (оболочка с открытым исходным кодом для .NET WinForms ListView) поддерживает флажки с смешанное состояние.

    Взгляните на вкладку Simple в демоверсии, чтобы увидеть их в действии.

    (Проделав работу, должен сказать, что это не так просто, как предполагает арбитр)

    14.07.2009

    3

    ListView не имеет неопределенного состояния.

    26.06.2009
  • Я знаю, что это не открытое свойство в элементе управления Windows Forms; Я спрашиваю, можно ли по-другому. 26.06.2009
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..