Solved

Is the form hidden VB.Net 2005

Posted on 2009-05-10
7
251 Views
Last Modified: 2012-05-06
Hi,

How do you determine if a form is hidden or closed.  

I've tried using the "created" property but I'm getting mixed results.  If the form is closed and I try an "if formname.visible = false" type query then I get True where the form is hidden or closed.  I can put in a workaround but I'm ideally looking for an answer to this.

NB. A modification to the IsLoaded function below is required to capture hidden forms.
Function IsLoaded(ByVal Loadedfrm As Form) As Boolean

        Dim frm As Form
 

        For Each frm In My.Application.OpenForms
 

            If frm.Name Is Loadedfrm.Name Then

                IsLoaded = True

            Else

                IsLoaded = False

            End If

        Next
 

    End Function

Open in new window

0
Comment
Question by:geraintcollins
  • 3
  • 2
  • 2
7 Comments
 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
What do you mean by a closed form, when you close a form, then the is no longer available unless code within the form is still running.  In VB6 you could close a form and still be able to access the form, you can't do that in .net.
0
 

Author Comment

by:geraintcollins
Comment Utility
The difference is explained below.  Now how do you tell, say from another form or module in the application, whether form1 is closed or hidden?
Public Class Form1
 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Me.Close()

    End Sub
 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Me.Hide()

    End Sub

End Class

Open in new window

0
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 50 total points
Comment Utility
Try something like this:

        If Not Form1.IsHandleCreated Then
            Label1.Text = "Form1 Closed"
        ElseIf Form1.Visible Then
            Label1.Text = "Form1 Open"
        Else
            Label1.Text = "Form1 Hidden"
        End If

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 15

Expert Comment

by:ChloesDad
Comment Utility
You can do me.close, but then you can't do me.show, as me has been closed, you would have to create a new copy of the form to be able to use it again

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.close.aspx
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
Comment Utility
*Unless you are working with the DEFAULT INSTANCE of the form...    ;)

0
 
LVL 15

Expert Comment

by:ChloesDad
Comment Utility
True, I had overlooked that as a possibility as its lazy programming, and if any of my staff do that I make them change it so that you only work with objects that you have created. I was surprised that they put that back in after omitting it from .net 2003, but thats another discussion....
0
 

Author Closing Comment

by:geraintcollins
Comment Utility
Excellent, answered the question without getting stuck on the reason why, I appreciate that.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

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

11 Experts available now in Live!

Get 1:1 Help Now