Вопрос : Почему делает checkchanged пожара checkedListBox когда щелкающ на детале

Я использую VB.Net 2008 в форме окон.  Я использую CheckedListBox имеет несколько деталей в ем.  Проверены и не проверены несколько деталей.   Странная часть когда я имею деталь быть выбранным, но щелкает дальше нижней частью списка где не будут рядков, его изменяет положение checkbox даже когда я не везде около checkbox!   Как делаю я остановите это от случаться.  Мои потребители идут freak вне если они видят, что checkbox изменяет, то когда они щелкают дальше белой зоной CheckedListbox где не будут деталей.   Проблемой будет этот случай горит другую логику что я не хочу случиться если они реально не намереваться проверить деталь.  Мне нужно знать когда они реально проверяют на коробке не на фиктивном белом космосе в коробке.   Мы smogли использовать HitTest на другом управлении, но HitTest не будет вариантом на этом control

кстати CheckOnClick установлено к false

It кажется смешоным что случаи ItemCheck и SelectedValueChanged горят щелкая на белом космосе CheckedListbox…   Я не вижу никакую дорогу поглотить что деталь реально был проверен/непроверено.  Я не хочу этот случай ый на в настоящее время выбранном детале когда я щелкаю дальше белым космосом под деталями.  Звучает как черепашка к мне, но возможно мне пропавш что-то…

I все еще нужно мочь использовать случай SelectedIndexChange для того чтобы знать когда деталь выбран, но мне также нужно знать когда фактический checkbox в управлении проверен/непроверено правильн не путем щелкать на белом космосе под помощью items.

Any был бы appreciated
class=

Ответ : Почему делает checkchanged пожара checkedListBox когда щелкающ на детале

Вы можете унаследовать от CheckedListBox и предотвратить нежелательное действие как это:
(как раз удар «строение» и ваше новое управление должен появиться вверху 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:
Общественный тип MyCheckedListBox
    Наследует CheckedListBox

    Приватное Const WM_LBUTTONDOWN как интежер = &H201
    Приватное Const WM_LBUTTONUP как интежер = &H202
    Приватное Const WM_LBUTTONDBLCLK как интежер = &H203

    Защищено отвергает Sub WndProc (ByRef m как System.Windows.Forms.Message)
        Выберите случай m.Msg
            Покрывайте WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK
                Затемните pt как пункт = Me.PointToClient (Cursor.Position)
                Для I как интежер = Me.TopIndex к Me.Items.Count - 1
                    Если Me.GetItemRectangle, то (I). Содержит (pt) после этого
                        MyBase.WndProc (m)
                        Выходите подводная лодка
                    Закончитесь если
                Затем
                Выходите подводная лодка 'вышл щелчок произошл в белом космосе: подавите действие невыполнения обязательства

        Закончите отборное
        MyBase.WndProc (m)
    Закончите подводную лодку

Закончите тип
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us