在Visual Studio中使用你的程序的顏色

這個例子從一個查詢出現在這篇文章

ColorDialog控制提出了一種傳統的調色板,但事實 ,Visual Studio是非常漂亮的顯示所有的名稱 System.Drawing對象的屬性定義的顏色。

鑑於這個問題,有沒有控制向我們展示了這種顏色,我們看到我們如何constriur之一,我們的清單。

對於例子中,我們需要一個新的項目和兩種形式。

在第一種形式警棍只需要調用表2,如下圖所示:

coloresNombre001

按鈕,代碼如下:

 BtnColor_Click私人小組(為 System.Object,BYVAL e視 System.EventArgs BYVAL發送者)把手btnColor.Click
作為新Form2的DIM vForm2
 vForm2.ShowDialog()
 END SUB

和n的形式將 botoes ListBox和兩個(確定和取消),如下列形式:

coloresNombre002

在窗體的Load事件建立ListBox控件的一些屬性和負載用下面的代碼的顏色的名稱:

 Form2_Load私人小組(為 System.Object,BYVAL e視 System.EventArgs BYVAL發送者)把手MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 ListBox1.Items.Clear()
 ListBox1.BeginUpdate()
對於每個作為 Reflection.PropertyInfo中的GetType(彩色)PI。GetProperties(或Reflection.BindingFlags.Static Reflection.BindingFlags.Public)
 ListBox1.Items.Add(pi.Name)
下一頁
 ListBox1.EndUpdate()
 END SUB

在負載“ListBox1.DrawMode = DrawMode.OwnerDrawFixed”的所有元素的控制手工繪製,並具有相同的高度州的第一行。 對此,安定寶,DrawItem事件觸發之前每個項目表演。

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

coloresNombre003

這是DrawItem事件代碼

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

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

 DIM作為字符串= ListBox1.Items nombreColor(e.Index)

 DIM 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視 System.EventArgs BYVAL發送者)把手btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName(ListBox1.SelectedItem)
 END SUB

 BtnCancelar_Click私人小組(為 System.Object,BYVAL e視 System.EventArgs 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我們一個傳統的調色板,但事實是,Visual Studio是非常漂亮,並顯示所有的顏色 ... ...的N

  2. Cristy 說:

    很好的例子,謝謝。

  3. 何塞路易斯 說:

    太棒了!
    這是非常感謝!

  4. 奧斯卡丹尼爾 說:

    很好!
    唯一不為我工作了取消按鈕。

  5. 埃里克 說:

    不能選擇透明色,因為它會:... ... ... ... ... 如果它工作的其他顏色

    salu2

    • 以利沙 說:

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

      感謝您發表評論!

  6. gercer89 說:

    救了我的生活這個例子!... ...但我能看到屏幕prpiedades這將改變顏色?它不會讓我看看“My.Forms.Form1.BackColor。”salu2感謝

  7. 迭戈 說:

    您好
    我得到一個錯誤的預期準確識別<阿當(且e.State DrawItemState。 選擇版),然後
    e.Graphics.FillRectangle(SystemBrushes.Highlight,矩形)

    HELP ME FA
    Graciass

  8. 亨利 說:

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

  9. 大衛 說:

    這 VERA,非常感謝你的這個例子。 可以將它應用於我的需要

    感謝來自梅里達,尤卡坦你

評論