我正在VB.NET中使用CheckedListBox來存儲項目的個人應用程序。我有三個按鈕在我的窗體上,我想要更改所選項目的顏色(綠色,橙色和紅色)。如何爲VB.NET中的CheckedListBox項目着色?
我已經嘗試了很多方法來解決這個問題,並沒有這樣的運氣。有人能伸出援助之手嗎?
我正在VB.NET中使用CheckedListBox來存儲項目的個人應用程序。我有三個按鈕在我的窗體上,我想要更改所選項目的顏色(綠色,橙色和紅色)。如何爲VB.NET中的CheckedListBox項目着色?
我已經嘗試了很多方法來解決這個問題,並沒有這樣的運氣。有人能伸出援助之手嗎?
改爲使用ListView。它支持複選框和選定的項目顏色。
有一個非常類似的答案在這裏:
For each <item> in CheckedListBox. <item> returns as Object and not as Control
基本上,這種控制不會做你希望它是什麼(至少在沒有太多的複雜性)。您需要將控件升級到ListView。
我真的寧願使用CheckedListBox ..:\ – Quark 2011-05-31 02:10:36
您還可以使用TreeView控件的外觀和行爲像一個選中的列表框:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.TreeView1.ShowLines = False
Me.TreeView1.CheckBoxes = True
Dim MyColors() As Color = {Color.Black, Color.Blue, Color.Red, Color.Green, Color.Aqua}
For x As Integer = 0 To 4
Dim NewNode As TreeNode = Me.TreeView1.Nodes.Add("Node" & x)
NewNode.ForeColor = MyColors(x)
Next
End Sub
我真的寧願使用CheckedListBox – Quark 2011-05-30 21:49:51
輪流使用ListView的意見。在我的Windows 7和Vista盒子上看起來效果很好,但在XP上,ListView沒有正確顯示(項目相互超越,複選框並不總是顯示)。檢查確定它不是一個框架版本問題,並且它不是屏幕分辨率問題。最終退回到沒有不一致性的CheckedListBox實現。
找到了這個解決方案,完成了CheckedListBox場景中藍色突出顯示的刪除操作。使用它但是你必須以另一種方式跟蹤選擇(全局變量,查看檢查的項目等)。
我只是在處理完「..._ SelectedIndexChanged」之後清除選定的項目。我在「..._ SelectedIndexChange」中做的第一件事是測試沒有選擇,如果這是變化,則什麼也不做。結果是當前選擇的項目顯示爲未被選擇(並且實際上未被選擇,即沒有藍色突出顯示),但是CheckBox保持被選中以指示用戶的最近選擇。
例==>
Private Sub ModelCheckedListBox_SelectedIndexChanged(ByVal sender As System.Object,...
Dim x As Short = ModelCheckedListBox.SelectedIndex
If x >= 0 Then
'Something I always do since the Selection Mode = "One" doesn't bother to clear
'the checks itself
ModelCheckedListBox.SetItemChecked(x, True)
If ModelCheckedListBox.CheckedItems.Count > 1 Then
For Each item In ModelCheckedListBox.CheckedIndices
If item <> x Then
ModelCheckedListBox.SetItemChecked(item, False)
End If
Next
End If
ModelCheckedListBox.Refresh()
'More of your code
ModelCheckedListBox.ClearSelected()
End If
End Sub
這是一個Windows窗體應用程序? – 2011-05-30 20:43:14
CheckedListBox是通過使用自定義繪畫從ListBox實現的。如果不完全重新實施它,您將無法再輕鬆地對其進行自定義。使用ListView是很好的建議。 – 2011-05-30 21:18:32