Solved

Visual Basic 2008. color dropdown menu

Posted on 2009-05-06
2
503 Views
Last Modified: 2013-11-27
How do I make a color choosing dropdown just like the color dropdown in properties window?

I don't want the color dialog but a color dropdown.

Thanks!
0
Comment
Question by:NerdsOfTech
2 Comments
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 500 total points
ID: 24327970
Here is one version:
Imports System.Reflection

Public Class Form1
 

    Private KnownColors As New List(Of KnownColor)
 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        For Each C As Color In System.ComponentModel.TypeDescriptor.GetConverter(GetType(Color)).GetStandardValues

            If Not C.IsSystemColor Then

                KnownColors.Add(C.ToKnownColor)

            End If

        Next

        ComboBox1.DataSource = KnownColors

        ComboBox1.DrawMode = DrawMode.OwnerDrawFixed

    End Sub
 

    Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem

        Static width As Integer = 15

        e.DrawBackground()

        Dim KC As KnownColor = KnownColors(e.Index)

        Dim rc As New Rectangle(e.Bounds.X + 3, e.Bounds.Y + 3, width, e.Bounds.Height - 6)

        Using B As New SolidBrush(Color.FromKnownColor(KC))

            e.Graphics.FillRectangle(B, rc)

            e.Graphics.DrawRectangle(Pens.Black, rc)

        End Using

        e.Graphics.DrawString(KC.ToString, ComboBox1.Font, Brushes.Black, e.Bounds.X + (width + 6), e.Bounds.Y)

    End Sub
 

    Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged

        If ComboBox1.SelectedIndex <> -1 Then

            Dim kc As KnownColor = ComboBox1.SelectedValue

            Me.BackColor = Color.FromKnownColor(kc)

        End If

    End Sub
 

End Class

Open in new window

ColorDropDown.jpg
0
 
LVL 19

Author Closing Comment

by:NerdsOfTech
ID: 31578867
Another superb display of knowledge! Thank you Idle_Mind.

I will be asking another related question about this type of control in the future. I will post here to notify you.

=NerdsOfTech
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article describes how to add a user-defined command button to the Windows 7 Explorer toolbar.  In the previous article (http://www.experts-exchange.com/A_2172.html), we saw how to put the Delete button back there where it belongs.  "Delete" is …
What my article will show is if you ever had to do processing to a listbox without being able to just select all the items in it. My software Visual Studio 2008 crystal report v11 My issue was I wanted to add crystal report to a form and show…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Concerto provides fully managed cloud services and the expertise to provide an easy and reliable route to the cloud. Our best-in-class solutions help you address the toughest IT challenges, find new efficiencies and deliver the best application expe…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now