Solved

DataGridViewComboBoxCell Color Based on List

Posted on 2010-08-17
4
581 Views
Last Modified: 2012-05-10
Is it possible to change the background draw color of a DataGridViewComboBoxCell based on a list of colors in the list? I've put the names of about 15 system colors in a DataGridViewComboBoxColumn collection, and I'd like to know if it's possible to color those items in the list based on those names.
0
Comment
Question by:diablo089
  • 3
4 Comments
 
LVL 18

Accepted Solution

by:
John (Yiannis) Toutountzoglou earned 250 total points
ID: 33457822
with a little doubt about how possible is that a trick is to add a handler and change your comboboxcolumn display style to nothing like a textbox column ..
use editing control showing event
something like this
Private Sub MyDataGridView_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles MyDataGridView.EditingControlShowing



        Try



            combo = CType(e.Control, ComboBox)



            If (combo IsNot Nothing) Then





                RemoveHandler combo.DropDownClosed, New EventHandler(AddressOf ComboBox_DropDownClosed)

                AddHandler combo.DropDownClosed, New EventHandler(AddressOf ComboBox_DropDownClosed)





                



            End If





        Catch ex As InvalidCastException



        Catch ex As Exception



            MsgBox(ex.ToString)



        End Try



    End Sub



Private Sub ComboBox_DropDownClosed(ByVal sender As Object, ByVal e As EventArgs)



        ¿t¿

        Try



            If  Me.MyDataGridView.CurrentRow.Cells("YourComboboxColumnIndex").IsInEditMode Then

                



                



                Dim col As New DataGridViewComboBoxCell

                col = Me.MYDataGridView.CurrentRow.Cells("YourComboboxColumnIndex" )

                col.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing

                col.Style.BackColor = Color.Red

                

                '''''''''''''''''''''''''''''''''''''''''''''''''''''''''



            End If



        Catch ex As ArgumentException



        Catch ex As Exception



            MsgBox(ex.ToString)



        End Try



    End Sub

Open in new window

0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33457832
Declare combo:
Private Combo as combobox
0
 

Author Comment

by:diablo089
ID: 33457945
Hmm... This is going to make my combobox column look like a textbox column with no drop down arrow, isn't it?
0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33457975
Untill You get in again ...and select something else
I really do not know if there is other way to do it ..
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

Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…

862 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

23 Experts available now in Live!

Get 1:1 Help Now