Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2006, 12:13
Avatar de RootK
RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Evitar que se abra la misma ventana

Hola, muchos han preguntado en aplicaciónes de escritorio como evitar que cuando dés un click se abra la Forma y que si lo vuelves a presionar no se vuelva a abrir... pues bien.. aqui les dejo un ejemplo que por cierto va a estar disponible también en las faq´s...

Ejemplo para Formularios MDI

Supongamos que tengo Form1 y Form2.

Form1 (parent) uno tiene un boton para abrir el Form2 (child) de ésta forma:

C#
Cita:
private void button1_Click(object sender, System.EventArgs e) {
Form2 childForm = null;
//Barremos las formas que hay en el parent para encontrar la referencia
foreach(Form f in this.MdiChildren) {
if(f is Form2) {
childForm = (Form2) f;
break;
}
}
//Si la encontró ya no necesita la instancia solo la mostramos
if( childForm != null) {
childForm.Show();
childForm.Focus();
}
else {
//No se ha creado por lo tanto generamos la instancia
childForm = new Form2();
childForm.MdiParent = this;
childForm.Show();
childForm.Focus();
}

}
VB.Net
Cita:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim childForm As Form2
//Barremos las formas que hay en el parent para encontrar la referencia
For Each f As Form In Me.MdiChildren
If TypeOf f Is Form2 Then
childForm = CType(f, Form2)
Exit For
End If
Next
'Si la encontró ya no necesita la instancia solo la mostramos
If Not (childForm Is Nothing) Then
childForm.Show()
childForm.Focus()
Else
'No se ha creado por lo tanto generamos la instancia
childForm = New Form2
childForm.MdiParent = Me
childForm.Show()
childForm.Focus()
End If
End Sub
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net

Última edición por RootK; 24/04/2006 a las 13:05