Fomularios saber si ya esta abierto.

05/08/2003 - 12:49 por Yolanda | Informe spam
Hola a todos

Me gustaría controlar que no pudierán abrir el mismo formulario varias veces

Un Saludo

Yolanda

Gracias por adelantado. a los pocos que siguen trabajando.
 

Leer las respuestas

#1 Venti
05/08/2003 - 23:07 | Informe spam
Verás Yolanada , esque estás creando el form en tiempo de ejecución cada vez
que apretas el boton. De todos modos yo vengo de visual basic 6 y utilizo
los forms de tal manera que pueda acceder a ellos desde cualquier sitio de
mi aplicación solo con añadirle el evento definstance.
No es un metodo muy purista pero es lo más práctico que he encontrado . si
te interesa puedes hacer la siguiente prueba. Crea un form en una aplicación
de prueba y llamale al form "form1.vb" despues sustituye el código
totalmente por el siguiente y a partir de este momento podras acceder a
todos los eventos de form 1con solo añadir el siguiente codigo
Form1.Definstance.Eleventoque tu quieras Saludos :
Option Strict Off

Option Explicit On

Friend Class Form1

Inherits System.Windows.Forms.Form

#Region "Código generado por el Diseñador de Windows Forms "

Public Sub New()

MyBase.New()

If m_vb6FormDefInstance Is Nothing Then

If m_InitializingDefInstance Then

m_vb6FormDefInstance = Me

Else

Try

'Para el formulario de inicio, la primera instancia creada es la instancia
predeterminada.

If System.Reflection.Assembly.GetExecutingAssembly.EntryPoint.DeclaringType
Is Me.GetType Then

m_vb6FormDefInstance = Me

End If

Catch

End Try

End If

End If

'El Diseñador de Windows Forms requiere esta llamada.

InitializeComponent()

End Sub

'Form reemplaza a Dispose para limpiar la lista de componentes.

Protected Overloads Overrides Sub Dispose(ByVal Disposing As Boolean)

If Disposing Then

If Not components Is Nothing Then

components.Dispose()

End If

End If

MyBase.Dispose(Disposing)

End Sub

'Requerido por el Diseñador de Windows Forms

Private components As System.ComponentModel.IContainer

Public ToolTip1 As System.Windows.Forms.ToolTip

'NOTA: el siguiente procedimiento es necesario para el Diseñador de Windows
Forms

'Se puede modificar mediante el Diseñador de Windows Forms.

'No lo modifique con el editor de código.

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

Dim resources As System.Resources.ResourceManager = New
System.Resources.ResourceManager(GetType(Form1))

Me.components = New System.ComponentModel.Container()

Me.ToolTip1 = New System.Windows.Forms.ToolTip(components)

Me.ToolTip1.Active = True

Me.Text = "Form1"

Me.ClientSize = New System.Drawing.Size(312, 206)

Me.Location = New System.Drawing.Point(4, 30)

Me.StartPosition System.Windows.Forms.FormStartPosition.WindowsDefaultLocation

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.BackColor = System.Drawing.SystemColors.Control

Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable

Me.ControlBox = True

Me.Enabled = True

Me.KeyPreview = False

Me.MaximizeBox = True

Me.MinimizeBox = True

Me.Cursor = System.Windows.Forms.Cursors.Default

Me.RightToLeft = System.Windows.Forms.RightToLeft.No

Me.ShowInTaskbar = True

Me.HelpButton = False

Me.WindowState = System.Windows.Forms.FormWindowState.Normal

Me.Name = "Form1"

End Sub

#End Region

#Region "Soporte para la actualización "

Private Shared m_vb6FormDefInstance As Form1

Private Shared m_InitializingDefInstance As Boolean

Public Shared Property DefInstance() As Form1

Get

If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed
Then

m_InitializingDefInstance = True

m_vb6FormDefInstance = New Form1()

m_InitializingDefInstance = False

End If

DefInstance = m_vb6FormDefInstance

End Get

Set

m_vb6FormDefInstance = Value

End Set

End Property

#End Region

End Class

"Yolanda" escribió en el mensaje
news:
Perdona Venti
Pero esa función o propiedad no me aparece
Desde un formulario al apretar un botón ejecuto esto.
y al apretarlo otra vez vuelve a abrirmelo.

¿Como puedo saber si ya lo tengo abierto?
Dim frm As New FrmRptPedidosCli()
frm.ShowDialog()



"Venti" <venti[[]]@terra.es> escribió en el mensaje
news:AsNXa.953081$
> Hola Prueba el evento del formulario "visible"
> If Form2.definstance.visible=true Then
> Msgbox("Esta abierto")
> Else
> Msgbox("Esta cerrado")
> end if
> Saludos
> "Yolanda" escribió en el mensaje
> news:u%
> > Hola a todos
> >
> > Me gustaría controlar que no pudierán abrir el mismo formulario varias
> veces
> >
> > Un Saludo
> >
> > Yolanda
> >
> > Gracias por adelantado. a los pocos que siguen trabajando.
> >
> >
> >
> >
>
>


Preguntas similares