2010-07-22 3 views
1

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() 

도움을 주셔서 감사합니다.

+0

어떻게 작동하나요? DrawItem 이벤트를 사용합니까? –

+0

한스, 나는 조금 더 설명하기 위해 메인 게시를 업데이트했다. 보고 주셔서 감사합니다! – Darkn3ss

답변

관련 문제