none
combox的item能以顏色來表示嗎? RRS feed

  • 問題

  • 我想要將combobox內的item改成改成色票(因為我要取得特定顏色的編號,所以無法用ColorDialog),我試著由BackColor設定,可是好像只能設定一個,一設定所有的item都換色,請問有什麼方式可以讓下拉的時候有色票可供選擇。

    2007年4月9日 上午 05:27

解答

所有回覆

  • Hi,您可以參考看看這篇文章,上面有VB的sample,您可以自行轉換為C#

    http://msdn2.microsoft.com/zh-tw/library/32tzw027(VS.80).aspx

    2007年4月9日 上午 06:46
  • 我可以在上面畫色票了,可是為什麼選完後顏色不會顯示在comboBox上面呢?
    2007年4月9日 下午 02:31
  • Hi,可以說清楚一點嗎?不太懂您的意思,"選完後顏色不會顯示在comboBox上面"看不懂..
    2007年4月9日 下午 03:15
  • 我的意思是說,選完之後,ComoBox.Text那部份怎麼顏色都沒有變,也就是說假如我選紅色,那comobox.text應該也要變紅色才對,可是我選完之後,comobox.text的顏色還是白色,我有試著讓他選完的時候將BackColor設成選的顏色,可是當我再選取一次時,下拉的所有items都會有一個紅色的底,這樣看起來很怪。

    如果在Click事件那邊設定,讓它下拉選單出現時就將BackColor還原成白色,可是這樣又會變得很遲頓,變成要按二次items才會下拉(可能一次是在還原顏色,第二次才下拉),這樣感覺又不是很正常。

    2007年4月10日 上午 12:31
  • 在原本的 VB 範例裏加上這一段試試

     

    Code Snippet

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
            Dim g As Graphics = e.Graphics
            Dim bFont As New Font("Arial", 8, FontStyle.Bold)
            Dim lFont As New Font("Arial", 12, FontStyle.Bold)

     

           If ComboBox1.SelectedIndex = 1 Then
             ComboBox1.ForeColor = Color.Red
            Else
             ComboBox1.ForeColor = Color.Black
            End If
    End Sub

     

     

    2007年4月10日 上午 03:37
  • 我的comboBox沒有字,每個item都是一個矩形色塊,而我主要也是要用色塊來表示,不是文字,所以沒辦法用ForeColor來設。
    2007年4月10日 上午 07:17