Visual Basic.NET - Listas dinámicas

 
Vista:

Listas dinámicas

Publicado por Catalina Bedoya (1 intervención) el 24/07/2008 20:13:14
Estoy desarrollando una aplicación en VB.NET 2005 y necesito que cada vez que invoque un formulario este me lo vaya almacenando en una lista, tal como sucede con excel, que cada vez que abre un libro nuevo me los va apilando hacia arriba y dice cuantos libros tengo abiertos . Como puedo hacer esto???.
Espero que me haya hecho entender ya que no se como mas explicarlo para que me entiendan.

Gracias de antemano por su ayuda...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Listas dinámicas

Publicado por Harold V (411 intervenciones) el 29/07/2008 12:29:01
Hola:

Espero esto te ayude, en esta pc no tengo el Visual Studio, aun asi la lógica es la siguiente.

Te aconsejaria que utilices (TaControl y PanelControl)

1. Coloca 1 panel en tu formulario, dale las propiedades de Dock (Fill)
2. Añade un TabControl (TabContainer) sin fichas
3. Declara los nombres de tus formularios en un Modulo:
Public frmAlgo as FormAlgo
Public frmAlgo2 as FormAlgo2

4. Crea 2 Metodos en tu Form MDI:

Private tabFicha As System.Windows.Forms.TabPage

Sub InsertaFicha(frm as Form)

For Each Tpg as TabPage in Me.TabContainer.TabPages
If tpg.Name="tb" & frm.Name then
'traemos al frente la ficha porque ya existe
me.tabContainer.SelectedTab= "tb" & frm.Name

else
TabFicha=New System.Windows.Forms.TabPage()
TabFicha.Name="tb" & frm.Name

frm.SuspendLayout
frm.TopLevel=False
TabFicha.Controls.Add(frmAlgo)
frm.ResumeLayout

Me.TabContainer.TabPages.add(TabFicha)
End If
Next


End Sub

Sub EliminaFicha(frm as Form)

For Each Tpg as TabPage in Me.TabContainer.TabPages
If tpg.Name="tb" & frm.Name then
Me.TabContainer.Remove(tpg)
Exit For
End If
Next

End Sub

5. Cada vez que abras el form mediante el menu o un boton llamas al metodo InsertaFicha si no existe la ficha y deshabilita el item del menu que llamo al formulario. Si exsite la ficha solo activala y traela al frente.

6. Para eliminar una ficha debes buscarla en el tabControl y eliminas su contenido (Form) que tiene dentro y luego la ficha en si.

7. Llamas a las funciones asi:

Ejm. Menu
Forms
Abrir FormAlgo

'Aqui creas el new del frmAlgo. lo colocas como hijo del mdi y lo agregas al TabContainer
InsertaFicha (frmAlgo)

Y para elminar usas el boton cerrar de tu form que llame al removeFicha, o te creas un boton en tu MDI (barra de herramientas que cierre la ficha actual)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar