Foros del Web » Programación para mayores de 30 ;) » .NET »

Crear una ventana sólo si no existe ya una con ese nombre

Estas en el tema de Crear una ventana sólo si no existe ya una con ese nombre en el foro de .NET en Foros del Web. Buenas, verán, mi aplicación se basa básicamente en una lista de carpetas, y un menú. En el menú, unos botones, y cada uno crea una ...
  #1 (permalink)  
Antiguo 20/05/2014, 06:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 67
Antigüedad: 14 años, 5 meses
Puntos: 2
Crear una ventana sólo si no existe ya una con ese nombre

Buenas, verán, mi aplicación se basa básicamente en una lista de carpetas, y un menú. En el menú, unos botones, y cada uno crea una nueva instancia de un formulario en concreto, el cual tiene que trabajar con la carpeta seleccionada en la lista que comenté en primer lugar.

Código VB.NET:
Ver original
  1. Dim NewWindow As New Mostrar
  2. NewWindow.SelectedFolder = SelectedFolder
  3. NewWindow.Show()

Hasta ahí bien, el problema es que cada vez que pulse ese botón, siempre va a crear una ventana nueva, aunque ya haya creado una que esté trabajando con esa carpeta.

Pareciera que ShowDialog es la solución evidente (de hecho es la que debo usar por ahora) pero me gustaría que el usuario pudiera abrir simultáneamente todas las ventanas que quiera, siempre y cuando no sean dos ventanas iguales trabajando con la misma carpeta.

En MSDN encontré esto: http://msdn.microsoft.com/es-es/libr....findname.aspx

De lo que creé mi propia adaptación en un proyecto de pruebas, pero no funciona:

Código VB.NET:
Ver original
  1. Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
  2.         Dim wantedNode As Object = Me.FindName(NameTextBox.Text)
  3. ' NameTextBox es el nombre del cuadro de texto donde escribo el nombre de la nueva ventana.
  4.         If TypeOf wantedNode Is Mostrar Then
  5. ' Mostrar es una clase de tipo Window.
  6.             Dim wantedChild As Mostrar = TryCast(wantedNode, Mostrar)
  7.             wantedChild.Focus()
  8.         Else
  9.             Dim NewWindow As New Mostrar
  10.             NewWindow.Name = NameTextBox.Text
  11.             NewWindow.Show()
  12.         End If
  13.  
  14.     End Sub

¿El problema? pues que estoy buscando instancias de la ventana "Mostrar" en Me, y ante la evidencia no se pueden encontrar ahí. ¿Dónde entonces?

¿Tal vez alguna solución diferente?

Por cierto, estoy trabajando con WPF, que ya he visto que hay códigos que con WinForms funcionaban y con WPF ya no.

Gracias.

Última edición por vistaero; 20/05/2014 a las 06:21

Etiquetas: nombre, ventana, windows, wpf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:06.