Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/09/2005, 16:34
Avatar de xknown
xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Por eso es importante que en tu pregunta incluyas el lenguaje con el que trabajas, aquí tienes la función de vb.net
Código:
Public Sub b_Click(ByVal sender as Object, e as EventArgs)
	Dim frm as Form1 = AbrirVentana(GetType(Form1)) ' No compila con "Option Strict", usar el de abajo
	' Dim frm as Form1 = CType(AbrirVentana(GetType(Form1)), Form1)
End Sub
Private shared formInstances As New SortedList() ' Para guardar las referencias de las instancias de los formularios
Public Shared Function AbrirVentana(ByVal type as Type, Optional dialog As Boolean = False) As Form
	Dim Formulario as Form = formInstances(type.ToString()) ' No compila con "Option Strict", usar el de abajo
	' Dim Formulario as Form = CType(formInstances(type.ToString()), Form)
	If formulario Is Nothing OrElse formulario.IsDisposed Then
		formulario = Activator.CreateInstance(type) ' No compila con "Option Strict", usar el de abajo
		' formulario = Ctype(Activator.CreateInstance(type), Form)
		formInstances(type.ToString()) = formulario
	End If
	
	formulario.Activate()
	formulario.WindowState = FormWindowState.Normal
	If dialog Then
		formulario.ShowDialog()
	Else
		formulario.Show()
	End If
		
	Return formulario
End Function
Saludos
PS. El error te manda porque el "=" lo está interpretando como comparación y no como asignación.
__________________
Alex Concha
Buayacorp - Programación y Diseño