Solved

Changing VB.Net control backcolor property to Default Control color?

Posted on 2013-11-08
9
1,026 Views
Last Modified: 2013-11-11
This might be a relatively easy question but I'm not sure how to change a Vb.Net control's backcolor property to the default "Control" color? I know how to do in design mode (see screenshot), but the Color Object does not have "Control" as a color. How can I change this in code?

Thanks!
Screenshot.jpg
0
Comment
Question by:BlakeMcKenna
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
not sure of exactly what you want but have a look at http://emoreau.com/Entries/Articles/2005/07/Colors-of-disabled-controls.aspx
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
Comment Utility
Me.Button1.BackColor = Color.FromKnownColor(KnownColor.Control)

Open in new window

0
 

Author Comment

by:BlakeMcKenna
Comment Utility
kaufmed,

That helps but I guess it was my fault for not being more clear. How do I get the integer value for that color? The integer value is what I need to store in the DB.
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
I think it's 5
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 74

Accepted Solution

by:
käµfm³d   👽 earned 400 total points
Comment Utility
KnownColor is an enum, so just cast it.

Dim controlColor As Integer = DirectCast(KnownColor.Control, Integer)

Open in new window


To revert, cast again:

Dim controlColor As KnownColor = DirectCast(someIntegerValue, KnownColor)

Open in new window

0
 

Author Comment

by:BlakeMcKenna
Comment Utility
Well I tried that and found that I didn't even need to Cast it. Just a direct assignment:

    ctlBackColor = KnownColor.Control
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
Comment Utility
Possibly. VB is a bit more forgiving on implicit casts, so it may be fine. You might encounter issues if you're ever asked to port the code over to C#.
0
 
LVL 40

Expert Comment

by:Jacques Bourgeois (James Burger)
Comment Utility
Wrong solution. This might work with some controls, but not all. By default, the Control color is the color you get on a button, a light shade of gray. Many controls use another color. For instance, the default color of a TextBox is WindowText, which is White. But the result can be changed, at least under Windows XP, through the Configuration Panel or if the user applies a theme to its Windows environment.

If you want to set the default color according to the current Windows theme, then you would need to set the color differently depending on whether you are dealing with a Button or a TextBox.

If you really want the default color for a given control, or simply want a single way of specifyint the color, use the DefaultBackColor property for the specific type of control, for instance:

txtIntRate.BackColor = TextBox.DefaultBackColor
btnQuit.BackColor = Button.DefaultBackColor
0
 

Author Comment

by:BlakeMcKenna
Comment Utility
Hi James,

I see your point here and it makes sense. Here is what I am trying to do. I have an application that allows the user to customize the look and feel of the various controls. There is a Form that has GroupBoxes that contain 4 different properties for controls (each GroupBox represents a specific Control...see Screenshot). These are the common controls used, i.e. TextBox, Button, Label, DataGridView, GroupBox, StatusStrip, etc.

The 4 different properties are the Bold, Italics, BackColor, ForeColor. The BackColor/ForeColor are Checkboxes and when checked, the Color Dialog pops up allowing the user to select the color they want.  Here is a snippet of code that is used for all the controls and modified accordingly.

                Dim pal As New ColorDialog
                Dim iColor As Integer
                Dim ctlBackColor As Integer
           
                If cboButtonBackColor.Checked = True Then
                    pal.ShowDialog()
                    iColor = pal.Color.ToArgb
                    ctlBackColor = iColor
                    pbButtonsBackColor.BackColor = pal.Color
                Else
                    ctlBackColor = KnownColor.Control
                    pbButtonsBackColor.BackColor = Me.BackColor
                End If

The ctlBackColor gets stored as an integer to the Database. Whenever a Form is activated, all the Buttons will reflect that stored value using the "Color.FromArgb(Database Value)".

My point being is that in the form that allows the users to customize controls, I can't really assign Button.DefaultBackColor because I'm not assigning it to an actual button control rather an integer variable. If you know of a way, I'm all ears!!! Thanks
Screenshot.jpg
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

763 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

12 Experts available now in Live!

Get 1:1 Help Now