在Visual Studio中使用程序的顏色

這個例子來自這篇文章中查詢。

控制ColorDialog提出了一種傳統的調色板,但事實是,Visual Studio是好得多,並顯示所有的名字在System.Drawing對象的屬性定義的顏色。

鑑於問題,有沒有向我們展示了這種顏色的列表,我們可以看到我們如何才能constriur之一,我們的控制。

例如,我們需要一個新的項目和兩種形式。

接力棒在第一種形式只需要調用的表格2,如下圖所示:

coloresNombre001

按鈕,代碼如下:

 BtnColor_Click私人小組(作為System.Object的,BYVAL e由於的BYVAL發件人)處理btnColor.Click
作為新Form2的點心vForm2
 vForm2.ShowDialog()
 END SUB

以這種形式將列印botoes ListBox和兩個(接受和取消),以下列形式:

coloresNombre002

在窗體的Load事件建立ListBox的一些特性,並進行下面的代碼的顏色名稱:

 Form2_Load私人小組(作為System.Object的,BYVAL e由於的BYVAL發件人)把手MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 ListBox1.Items.Clear()
 ListBox1.BeginUpdate()
對於每一個在的GetType Reflection.PropertyInfo(彩色)PI的GetProperties(或Reflection.BindingFlags.Static Reflection.BindingFlags.Public)
 ListBox1.Items.Add(pi.Name)
未來
 ListBox1.EndUpdate()
 END SUB

在第一行“ListBox1.DrawMode負荷= DrawMode.OwnerDrawFixed”建立手工繪製控制所有的元素都具有相同的高度。 這ademças,DrawItem事件觸發之前每個項目的表演。

要設置ListBox中,選擇DrawItem事件(在設計視圖中)ListBox1中,我們按F4查看屬性,屬性框上方選擇閃電看到,可控制的事件我們DrawItem和我們雙擊。 下面的圖片說明了如何:

coloresNombre003

這是DrawItem事件代碼

 ListBox1_DrawItem私人小組(BYVAL發件人作為對象,像System.Windows.Forms.DrawItemEventArgs BYVALé)把手ListBox1.DrawItem
昏暗的矩形作為矩形= e.Bounds

如果(e.State和DrawItemState.Selected),然後
 e.Graphics.FillRectangle(SystemBrushes.Highlight,矩形)
其他
 e.Graphics.FillRectangle(Brushes.White,矩形)
結束如果

暗淡的String = ListBox1.Items nombreColor(e.Index)

昏暗的B作為新SolidBrush(Color.FromName(nombreColor))

 rectangulo.Inflate(-16,-2)
 e.Graphics.FillRectangle(B,矩形(rectangulo.X,rectangulo.Y,30,rectangulo.Height))

 e.Graphics.DrawRectangle(矩形Pens.Black,新(rectangulo.X,rectangulo.Y,30,rectangulo.Height))

如果(e.State和DrawItemState.Selected),然後
 e.Graphics.DrawString(nombreColor,e.Font,Brushes.White,rectangulo.X:+ 34,rectangulo.Y + 2個)
其他
 e.Graphics.DrawString(nombreColor,e.Font,Brushes.Black,rectangulo.X:+ 34,rectangulo.Y + 2個)
結束如果
 END SUB

現在我們只需要程序的按鈕eventosde在下面的代碼所示:

 BtnAceptar_Click私人小組(作為System.Object的,BYVAL e由於的BYVAL發件人)處理btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName(ListBox1.SelectedItem)
 END SUB

 BtnCancelar_Click私人小組(作為System.Object的,BYVAL e由於的BYVAL發件人)處理btnCancelar.Click
 Me.Close()
 END SUB

嗯,測試應用程序......如果一切順利,看起來像這樣:

coloresNombre004

我離開的一些定義:

Graphics.FillRectangle(方法):填充由一個坐標對,寬度和高度指定的矩形內部。

Graphics.DrawRectangle(方法):繪製由坐標對,寬度和高度指定的矩形。

Graphics.DrawString(方法):在指定的位置,並用指定的Brush和Font對象繪製指定的文本字符串。

希望這有助於你可以在項目中使用。

11回應“在你的程序中使用Visual Studio中的顏色”

  1. Bitacoras.com 說:

    信息Bitacoras.com ...

    在Bitacoras.com率:這個例子出現在這篇文章中的查詢。 控制ColorDialog tresenta我們傳統的調色板,但它是TRUé視覺工作室是好得多,並顯示出所有的顏色為您的n ......

  2. cristyan說:

    一個很好的例子,謝謝。

  3. 何塞·路易斯說:

    太好了!
    非常感謝!

  4. 奧斯卡·丹尼爾說:

    非常好!
    唯一,我的工作是“取消”按鈕。

  5. 埃里克說:

    不能選擇透明色,它會是什麼?............ 其他顏色的,如果它的工作原理

    salu2

    • 以利沙說:

      是透明的顏色,不能用於作為一個表格的背景顏色,但如果應用到其他控件。

      的評論!

  6. gercer89說:

    這個例子中救了我的生活!......但是我能看到的prpiedades屏幕,在你改變顏色,因為它讓我看到“My.Forms.Form1.BackColor。”感謝salu2

  7. 迭戈說:

    你好
    我得到一個錯誤預期的標識符完全相同。A如果(e.State和DrawItemState。 選擇版)
    e.Graphics.FillRectangle(SystemBrushes.Highlight,矩形)

    幫我由FA
    Graciass

  8. 亨利說:

    問候......
    我在尋找技術做出更好的控制,必須像機場的設計,但我不知道,也不是我能找到的東西,請如果你能幫助我非常感謝你anetmano ...

  9. 大衛說:

    這蘆薈,非常感謝你的這個例子。 我能夠將它應用到我的需要

    謝謝你從梅里達,尤卡坦

評論