Использовать управления contextmenustrip с списке checkedlistbox - не элементы в списке, но сам списке checkedlistbox
У меня возникли проблемы с получением моего contextmenustrip, чтобы дать мне результаты, которые я хочу.
Я хочу иметь возможность отключать/включать мои checkedlistboxes по мере необходимости. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу заставить свой contextmenustrip работать с самим listbox, чтобы он стал фокусом элемента управления, я должен щелкнуть элемент, который затем выделит его и установит флажок (я определенно не хочу этого)
Другая проблема заключается в том, что когда listbox отключен, он не позволяет мне повторно включить его с помощью contextmenustrip.
Кроме того, если бы кто - то мог сказать мне, как остановить выделение элементов в моем checkedlistbox, я был бы очень признателен-даже если вы снимите флажок с элемента, он все равно останется выделенным, что крайне раздражает.
Что я уже пробовал:
Private Sub MarkCrewInactiveToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MarkCrewInactiveToolStripMenuItem.Click If TypeOf Me.ActiveControl Is CheckedListBox Then Dim objControl As CheckedListBox = Me.ActiveControl ActiveControl.BackColor = SystemColors.ActiveBorder ActiveControl.Enabled = False End If End Sub Private Sub MarkCrewActiveToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MarkCrewActiveToolStripMenuItem.Click If TypeOf Me.ActiveControl Is CheckedListBox Then Dim objControl As CheckedListBox = Me.ActiveControl ActiveControl.BackColor = SystemColors.Window ActiveControl.Enabled = True End If End Sub
Maciej Los
Когда какой-то фрагмент кода используется более одного раза, вы должны переместить его в другую подпрограмму (с параметрами или без них). Взгляните на свой код, единственное отличие - это BackColor и состояние включенного свойства.