VB.net when groupbox is visible, everything in the back darkens

Hi Experts,

I have a form in VB.net

when i click the button, a hidden groupbox in the middle of the screen turns visible (with a new menu inside, sort of like a popup.


I need to dim everything in the background out and make it a few shades darker.

i was thinking I make a giant black opaque picturebox in the background

cannot find how to do this
I found some things but don't know how to put them together


Thanks in advance
LVL 15
Ess KayEntrapenuerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Tom BeckCommented:
This is for a Windows form?
0
Ess KayEntrapenuerAuthor Commented:
Yes.


An example of what i want it to do is images from google search when you click one the screen is dark, cannot click behind the picture but can still see

example
0
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

Ess KayEntrapenuerAuthor Commented:
I don't need the form's opacity to change

what does this have to do with anything


And no, the picture box does not have an opacity function


i need it to look something like this

dark bg no click
0
CodeCruiserCommented:
That CSS at work which does not exist in winforms.
0
Ess KayEntrapenuerAuthor Commented:
obviously, but when there is a will, there is a way. I want something like that on my windows form.


this is close to what I am looking for but I need the actual code, and for it to be in VB.net
http://www.experts-exchange.com/Programming/Languages/.NET/Visual_CPP/Q_21874286.html
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
The Opacity() approach can work.  First disable the real form.  Next, display a Borderless Form over the main form and set its Opacity to your liking.  Finally, display a third small Form with the GroupBox over the other two.
0
Ess KayEntrapenuerAuthor Commented:
Interesting concept. how would I go about layering the second and third form
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
Just position them right over each other.  You'll probably need to fiddle with each Forms ShowInTaskBar() property so they appear (or don't appear) to have entries in the TaskBar.
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
*I mean explicitly set their Location() properties based off each other.  Set the FormStartPosition() to "Manual".
0
Ess KayEntrapenuerAuthor Commented:
But if you alt-tab you will be able to cycle through them. or if you click the form on the start menu the others will go to the back

sounds impractical
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
There are other house-keeping techniques you can do to prevent that.  Yes...it's a pain in the butt.

If you want it all in ONE form then take a screenshot of the form and use the Drawing classes to make it look "dimmed".  Now put that in image in a temp Panel control that is placed over everything on the form.  Finally, add the GroupBox to that Panel.
0
Ess KayEntrapenuerAuthor Commented:
the form is dynamic, options change on it
so screenshot wont work



looks like this, but ill change the (look) of it later


 frm
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
"the form is dynamic, options change on it, so screenshot wont work"

You can take a screen shot via code right before you need to dim it.
0
Ess KayEntrapenuerAuthor Commented:
hows that work
0
Mike TomlinsonHigh School Computer Science, Computer Applications, and Mathematics TeachersCommented:
Try something like this:
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim RC As Rectangle = Me.RectangleToScreen(Me.ClientRectangle)
        Dim bmp As New Bitmap(RC.Width, RC.Height)
        Using G As Graphics = Graphics.FromImage(bmp)
            G.CopyFromScreen(RC.Location, New Point(0, 0), RC.Size)
            Using brsh As New SolidBrush(Color.FromArgb(128, Color.Gray))
                G.FillRectangle(brsh, Me.ClientRectangle)
            End Using
        End Using

        Dim pnl As New Panel
        pnl.Size = RC.Size
        pnl.Location = New Point(0, 0)
        pnl.BackgroundImage = bmp
        Me.Controls.Add(pnl)
        pnl.BringToFront()

        Dim gb As New GroupBox
        gb.Text = "Hello World!"
        gb.Size = New Size(Me.ClientRectangle.Width / 2, Me.ClientRectangle.Height / 2)
        gb.Location = New Point(Me.ClientRectangle.Width / 4, Me.ClientRectangle.Height / 4)
        pnl.Controls.Add(gb)

        Dim btn As New Button
        btn.Text = "OK"
        btn.Tag = pnl
        btn.Location = New Point(gb.Width - btn.Width - btn.Margin.Right, gb.Height - btn.Height - btn.Margin.Bottom)
        AddHandler btn.Click, AddressOf btn_Click
        gb.Controls.Add(btn)

        Me.ControlBox = False
        Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle
    End Sub

    Private Sub btn_Click(sender As System.Object, e As System.EventArgs)
        Dim btn As Button = DirectCast(sender, Button)
        DirectCast(btn.Tag, Panel).Dispose()
        Me.ControlBox = True
        Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable
    End Sub

End Class

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ess KayEntrapenuerAuthor Commented:
Exactly what I was looking for thanks
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming

From novice to tech pro — start learning today.