Abrir Ventana en la ventana principal ¿DockPanel?

Iniciado por rigorvzla, 9 Noviembre 2019, 22:59 PM

0 Miembros y 1 Visitante están viendo este tema.

rigorvzla

Hola amigos, hoy traigo una inquietur y espero puedan ayudarme , resulta que practicando esto de programacion, se me ocurrio algo que se ve mucho en programas, y es que en una ventana con un boton, al apretarlo, en vez de abirme la ventana de manera individual aparte, queria que se abriera en la misma ventana de inicio, yo uso WPF y pense en DockPanel, no se si es el mas ideal para esta tarea, en caso de no ser asi espero puedan ayudarme, ya que quiero aprender a abrir ventanas en la misma ventana principal.

Espero entiendan lo que en tratado de explicar, de antemano gracias.

Serapis

#1
Eso se llaman ventanas MDI (Interfaz de Multiples Documentos).

Crea un proyecto vacío y luego:
Menú Proyecto --> Agregar Windows Forms --> Formulario Primario MDI y le das a aceptar.

Las ventanas MDI, generalmente se hacen para contener múltiples instancias de una misma ventana... es decir si por ejemplo tienes una aplicación que (por ejemplo) es un procesador de textos, pues en esa misma ventana puedes tener múltiples instancias de dicha ventana tratando cada una un texto/fichero de texto distinto...

También puedes crear un formulado de tipo MDI, cambiando la propiedad "IsMDIContainer = TRUE", pero al hacelro de la otra forma ya te proporciona cierto código hecho que quizás puedas aprovechar.

Puedes tener tantas ventanas hijas como qieras y de tantos modelos como quieras, aquí un simple código para tener múltiples instancias de 2 modelos de ventanas de ejemplo...
Código ( vbnet) [Seleccionar]

Private f_CalCount As Integer
Private Sub Form1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1ToolStripMenuItem.Click
   Dim FrmCalendar As New Form1   'New System.Windows.Forms.Form

   FrmCalendar.MdiParent = Me
   f_CalCount += 1
   FrmCalendar.Text = "Calendario " & f_CalCount
   FrmCalendar.Show()
End Sub

Private f_ToolCount As Integer
Private Sub Form2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form2ToolStripMenuItem.Click
   Dim FrmTool As New Form2   'New System.Windows.Forms.Form

   FrmTool.MdiParent = Me
   f_ToolCount += 1
   FrmTool.Text = "Herramientas " & f_ToolCount
   FrmTool.Show()
End Sub

Y aquí una imagen de como se vería tras añadir algunas instancias de cada una...



P.d.: Desde WPF, la verdad es que nunca he tenido la necesidad de crear una interfaz MDI, así que no sabría decirte cuan distinto resulta...

rigorvzla

muchas gracias nebire, mientras esperaba respuesta encontre q es posible hacerlo con el usercontrol, una via tambien, cargamos el content del usercontrol como la ventana a abrir (ventana q heredae usercontrol) y se muestra, solo que tiene detalles que no son como una ventana normal, aunque hasta aqui llegue y no segui probando, gracias nuevamente buscare de recrear tu respuesta en WPF y les cuento.