2010-07-22 50 views
1

我正在使用DrawItem和MeasureItem事件繪製具有OwnerDrawVariable的DrawMode的組合框。VB.NET組合框 - 當按下某個鍵時,需要強制重繪

基本上,我試圖讓用戶使用鼠標突出顯示選擇內容,然後按空格鍵切換歌曲列表的保存狀態。然後我調用表單的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事件嗎? – 2010-07-22 21:06:20

+0

漢斯,我更新了主要帖子,希望能多解釋一下。感謝您的期待! – Darkn3ss 2010-07-22 21:11:41

回答