Pytanie : Dlaczego robić checkedListBox ogień the checkchanged gdy klikać na the rzecz

I używać VB.Net 2008 w okno forma.  I używać CheckedListBox który mieć kilka rzecz w ono.  Kilka rzecz sprawdzać i sprawdzać.   The dziwaczny część być kiedy I mieć rzecz wybierać, ale klikać dalej the niski część the lista dokąd tam  być żadny rząd, ono zmieniać the stan the checkbox nawet gdy I być gdziekolwiek blisko the checkbox!   Jak I zatrzymywać to od.  Mój użytkownik iść mój jeżeli widzieć the checkbox gdy klikać dalej the biały teren CheckedListbox dokąd tam  być żadny rzecz.   The problem być ten wydarzenie podpalać inny logika który I chcieć jeśli naprawdę znaczyć the rzecz.  I potrzebować kiedy naprawdę sprawdzać na the pudełko nie na nieprawdziwy biel przestrzeń w the pudełko.   My móc HitTest na inny kontrola, ale HitTest być opcja na ten control

By the sposób CheckOnClick ustawiać false

It wydawać się niedorzeczny że the ItemCheck i SelectedValueChanged wydarzenie podpalać gdy klikać na the biały przestrzeń CheckedListbox…   I widzieć jakaś sposób że rzecz naprawdę sprawdzać/niewstrzymany.  I chcieć ten wydarzenie podpalać na the aktualny wybrany rzecz gdy I klikać dalej the biały przestrzeń pod the rzecz.  Dźwięk jak pluskwa, ale być może I brakować ale…

I wciąż potrzebować sprawnie the SelectedIndexChange wydarzenie kiedy rzecz wybierać, ale I także potrzebować kiedy faktyczny checkbox w the kontrola sprawdzać/niewstrzymany stosownie nie na biel przestrzeń pod the items.

Any pomoc być appreciated

Odpowiedź : Dlaczego robić checkedListBox ogień the checkchanged gdy klikać na the rzecz

Ty móc Od the CheckedListBox i the niepożądany akcja jak móc:
(właśnie uderzać "Budowa" i twój nowy kontrola musieć przy the wierzchołek the ToolBox)
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
Społeczeństwo Klasowy MyCheckedListBox
    Dziedziczyć CheckedListBox

    Intymny Const WM_LBUTTONDOWN Jako Integer = &H201
    Intymny Const WM_LBUTTONUP Jako Integer = &H202
    Intymny Const WM_LBUTTONDBLCLK Jako Integer = &H203

    Ochraniać Być ważniejszym Okręt podwodny WndProc (ByRef m Jako System.Windows.Forms.Message)
        Wybrany Skrzynka m.Msg
            Skrzynka WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK
                Ciemnawy pt Jako Punkt = Me.PointToClient (Cursor.Position)
                Dla i Jako Integer = Me.TopIndex Me.Items.Count - (1)
                    Jeżeli Me.GetItemRectangle (i). Zawierać (pt) Wtedy
                        MyBase.WndProc (m)
                        Wyjście Okręt podwodny
                    Kończyć Jeżeli
                Następnie
                Wychodzić Okręt podwodny 'Opuszczać stuknięcie zdarzać się w the biały przestrzeń: tłumić brak akcja

        Kończyć Wybiórka
        MyBase.WndProc (m)
    Kończyć Okręt podwodny

Kończyć Klasa
Inne rozwiązania  
 
programming4us programming4us