Er det mulig å sette en kontrollert listevisningen element til blandet tilstand?

stemmer
1

Den CheckBoxkontroll utsetter både boolske Checkedog System.Windows.Forms.CheckStateenum CheckStateegenskaper, som gjør det mulig å stille inn styre til enten merket, merket, eller blandet tilstand ( Indeterminateenum verdi).

Jeg ønsker å sette et ListViewelement stat til Indeterminate, men bare den Checkedegenskapen synes å være tilgjengelig. Så, er det en måte å sette den til blandet, muligens ved vinduet meldinger eller lignende triks?

Publisert på 26/06/2009 klokken 05:11
kilden bruker
På andre språk...                            


3 svar

stemmer
-1

Listview har ikke ubestemt tilstand.

Svarte 26/06/2009 kl. 05:34
kilden bruker

stemmer
3

Vel, kan du bruke følgende løsning:

  1. Lag tilstand ImageList med 3 stater (du kan ta lage bilder ved hjelp CheckBoxRenderer )
  2. Tildele denne bildelisten til listevisning
  3. Deretter må du håndtere OnMouseDown (eller OnMouseClick) og onkeydown hendelser og skifte statlige bilder for nødvendig listeelement

Selvfølgelig må du også skrive flere hjelpe metoder for å få sjekket tilstanden, etc. Men generelt denne løsningen er relativt enkelt å implementere.

Egentlig intern Listview implementering gjøre det samme, men denne logikken er skjult inne Comctl32.dll.

Svarte 26/06/2009 kl. 06:38
kilden bruker

stemmer
0

ObjectListView (en åpen kilde omslag rundt NET WinForms List) støtter boksene med blandet tilstand.

Ta en titt på Simple kategorien demoen for å se dem i aksjon.

(Etter å ha gjort jobben, må jeg si at det er ikke så lett som oppmann antyder)

Svarte 14/07/2009 kl. 11:51
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more