Fråga : Avfyra checkchanged, när du klickar inte på objektet, varför gör en checkedListBox

Förmiddag I using VB.Net 2008 i fönster bildar.  Förmiddag I using en CheckedListBox som har flera objekt i den.  Flera objekt kontrolleras och kontrolleras inte.   Den konstiga delen är, när jag har ett utvalt objekt, men klickar nedtill av lista var det finns inget ror, det ändrar det statligt av checkboxen även om I-förmiddagen inte någonstans nära checkboxen!   Stoppa detta från att hända, hur gör jag.  Min användare går att flippa ur ut, om de ser checkboxen ändra, när de klickar på vitområdet av CheckedListbox var det inte finns några objekt.   Problemet är denna händelse avfyrar annan logik att jag inte önskar att hända, om inte de betyder egentligen att kontrollera objektet.  Jag behöver att veta när de kontrollerar egentligen på boxas inte på bogus vitutrymme i boxas.   Vi kunde använda HitTest på annan kontrollerar, men HitTest är inte ett alternativ på denna control

By som CheckOnClicken är långt fastställd till false

It verkar löjlig att de ItemCheck och SelectedValueChanged händelserna avfyrar, när klicka på vitutrymmet av en CheckedListbox…,   Jag ser inte any långt för att fånga att ett objekt kontrollerades egentligen/okontrollerat.  Jag önskar inte denna händelse som avfyras på det utvalda objektet för strömmen, när jag klickar på vitutrymmet under objekten.  Låter något liknande en bugga till mig, men kanske mig förmiddagsaknaden något… behov för

I fortfarande att vara kompetent att använda den SelectedIndexChange händelsen för att veta när ett objekt är utvalt, men jag behöver också att veta när en faktisk checkbox i kontrollera kontrolleras/okontrollerat inte genom att klicka på nedanfört vitutrymme den skulle hjälpen för items.

Any är riktigt appreciated
" klar "

Svar : Avfyra checkchanged, när du klickar inte på objektet, varför gör en checkedListBox

Du kan överta från CheckedListBoxen och förhindra den oönskade handlingnågot liknande detta:
(precis hiten ”byggande” och ditt nytt kontrollerar bör synas upptill av toolBoxen),
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
Allmänhet klassificerar MyCheckedListBox
    Övertar CheckedListBox

    Privata Const WM_LBUTTONDOWN som heltal = &H201
    Privata Const WM_LBUTTONUP som heltal = &H202
    Privata Const WM_LBUTTONDBLCLK som heltal = &H203

    Skyddade åsidosättanden underWndProc (ByRef M som System.Windows.Forms.Message)
        Välj fallet m.Msg
            Case WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK
                Dunkel liter som pekar = Me.PointToClient (Cursor.Position)
                För I som heltal = Me.TopIndex till Me.Items.Count - 1
                    Om Me.GetItemRectangle (I). Innehåller (liter) därefter
                        MyBase.WndProc (M)
                        Gå ut suben
                    Avsluta om
                Därefter
                Gå ut den lämnade suben 'klickar uppstått i vitutrymmet: dämpa standardhandlingen

        Avsluta valt
        MyBase.WndProc (M)
    Avsluta suben

Avsluta klassificerar
Andra lösningar  
 
programming4us programming4us