Solved

Can you create a Lightbox dialogbox in winforms using VB.net?

Posted on 2010-08-19
10
1,996 Views
Last Modified: 2013-12-26
Hi Experts,
I was wondering, if one can create light box effect in win forms using vb.net like many websites have this technique where the background form is semi transparant and the modal form is bright and in focus?
0
Comment
Question by:RekhaShah
  • 5
  • 5
10 Comments
 
LVL 42

Expert Comment

by:sedgwick
ID: 33479197
can u post an example of website which has this effect? just to get a clear picture of whai u need.
0
 

Author Comment

by:RekhaShah
ID: 33479271
It is called lightbox dialog effect. Even This website uses it when you post a question.  I think it is preety simple, I tried to set the opacity of the form =.5. then show the dialogbox and after the users' response, i set forms's transperancy back to 1.0. This is the closeset I can get. If you try this, you will have an idea of what I am talking about.
0
 
LVL 42

Expert Comment

by:sedgwick
ID: 33479327
u simply change the Opacity property of the Form and also the background color of the form.change the opacity to 0.86 and the backcolor to whatever you like.
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 42

Expert Comment

by:sedgwick
ID: 33479399
ok, u mean that u want to have like a semi transparent mask with some color, which covers also the controls on the form, is that correct?
0
 

Author Comment

by:RekhaShah
ID: 33479437
I think in ASP.net, they use some JQuery to  bring the effect. With opacity change, one can see the window's desktop. What should really happen is that the form should look like watermarked document if you will, or disabled document.
0
 
LVL 42

Expert Comment

by:sedgwick
ID: 33479610
in WPF it is built in, u simply use Opacity like in any winform.
in .net 3.5 and earlier is kinda complicated.
before displaying the messagebox you could do the following:

take screenshot of the form, save it as image and perform the algorithm which yields lightbox effect (you can google for it, i'm sure it's somewhere).
then you set the image as the form background and hide all controls.
after user click the messagebox, you restore the form backcolor and show all the controls.
0
 

Author Comment

by:RekhaShah
ID: 33479728
There is a sample project on the folowing link, but it is in C#. i don't know C#. that will give you an idea. Thanks
http://cid-12d219ccfc930f76.skydrive.live.com/self.aspx/Code/LightBox000.zip 
0
 

Accepted Solution

by:
RekhaShah earned 0 total points
ID: 33479943
I got it to work. It is very simple. Attaching the code for others.
I added a form called DarkenArea to the project , set the properties of the form as below:
Back Color = Black
SizeGripStyle = Hide
ShowIntaskBar = false
Opacity = 50%
MaximizeBox = false
Minimizebox = false
FormBorderStyle = none
StartPosition=Manual

 Dim sFileName As String
        Dim lbform As New DarkenArea()
        lbform.SetBounds(Me.Left + 8, Me.Top + 30, Me.ClientRectangle.Width, Me.ClientRectangle.Height)
        lbform.Owner = Me
        lbform.Show()
        sFileName = InputBox("Plese Enter File Name")
        lbform.Close()

Open in new window

0
 
LVL 42

Expert Comment

by:sedgwick
ID: 33479990
i can help you translate or u can use the following online conversion website:
http://www.developerfusion.com/tools/convert/vb-to-csharp/

here's the conversion for the Lightbox code:
Private Sub LBform_Load(sender As Object, e As EventArgs)
      Dim background As New Bitmap(Me.Width, Me.Height)
      Dim g As Graphics = Graphics.FromImage(background)
      g.FillRectangle(Brushes.Fuchsia, Me.ControlBounds)

      g.Flush()

      Me.BackgroundImage = background
      Me.Invalidate()
End Sub

LBform is the form which used as the Lightbox mask
0
 

Author Comment

by:RekhaShah
ID: 33480163
We don't have to do any of these things, just look at my code that i have posted. It works like a charm and no complicated code. But thanks for your willingness to help.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

856 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