DrawItem 및 MeasureItem 이벤트를 사용하여 DrawMode가 OwnerDrawVariable 인 콤보 상자를 그리는 중입니다.VB.NET ComboBox - 키를 누를 때 키를 눌러 다시 그리도록합니다.
기본적으로 사용자가 마우스로 선택한 항목을 강조 표시 한 다음 스페이스 바를 누르면 노래 목록의 저장 상태가 토글됩니다. 그런 다음 폼과 ComboBox를 다시 그리기 위해 폼의 Me.Refresh() 이벤트를 호출합니다.
내가 겪고있는 문제는 기본 폼의 컨트롤 인 콤보 박스 자체 (드롭 다운 영역 아님) 만 다시 그려지는 것이며 드롭 다운의 마우스 강조 표시된 선택 뒤에있는 텍스트입니다 내가 생각한대로 다운 목록이 레드에서 블랙으로 바뀌지는 않습니다. 마우스를 다른 선택 영역으로 이동하면 색상이 실제로 업데이트됩니다.
다음은 코드 스 니펫입니다.
If (e.KeyCode = Keys.Space) Then
If cmbList.SelectedItem IsNot Nothing Then
With DirectCast(cmbList.SelectedItem, SongTitle)
.bSave = Not .bSave
End With
End If
End If
e.Handled = True
Me.Refresh()
도움을 주셔서 감사합니다.
어떻게 작동하나요? DrawItem 이벤트를 사용합니까? –
한스, 나는 조금 더 설명하기 위해 메인 게시를 업데이트했다. 보고 주셔서 감사합니다! – Darkn3ss