• Jueves 25 de Abril de 2024, 09:59

Autor Tema:  ReCargar Formulario sin perder datos  (Leído 4981 veces)

Martillo

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
ReCargar Formulario sin perder datos
« en: Viernes 12 de Septiembre de 2008, 13:37 »
0
Hola

Tengo un formulario (A) en cual tengo una serie de datos, luego despliego un nuevo formulario(B) el cual realizo una busqueda avanzada de datos, llamo a el formulario (B) de la siguiente manera

Código: Text
  1.  InterfazB interfazB = new InterfazB();
  2. interfazB.ShowDialog();
  3. this.Hide();
  4.  

en este formulario tomo un dato que necesito y luego deseo volver al formulario anterior con todos las datos que tenia cargados anteriormente.


¿Como podria volver a llamarlo (formulario A) conservando todos los datos cargados previamente para no perderlos?

Saludos.
[size=109]Solo sed que nada sed!!!!!![/size]

Martillo

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: ReCargar Formulario sin perder datos
« Respuesta #1 en: Jueves 25 de Septiembre de 2008, 21:48 »
0
Me autorespondo

para instanciar una sola vez de algun formulario y asi no perder la informacion cada vez que tenga que necesitar dicho formulario hay que crear una propiedad que le llaman DefInstance, aca el codigo (este codigo debe ir en el formulario que queremos que sea instanciado una sola vez)

Código: Text
  1. private static Form1 _Form1 = null;
  2.  
  3.         public static Form1 DefInstance
  4.         {
  5.             get
  6.             {
  7.                 if (_Form1 == null || _Form1.IsDisposed)
  8.                     _Form1 = new Form1();
  9.                 else
  10.                     _Form1.BringToFront();
  11.                 return _Form1;
  12.             }
  13.             set
  14.             {
  15.                 _Form1 = value;
  16.             }
  17.         }
  18.  


y luego lo llamamos de esta menera


Código: Text
  1.  
  2. Form1.DefInstance.Show();
  3.  
  4.  

y para acceder algun campo desde otro formulario debemos declara como Internal el campo y se llama de esta manera


Código: Text
  1. Form1.DefIntance.TextBox1.Text = "algo";
  2.  

espero que le sirva a alguien ya que yo no encontre nada en mucho tiempo.

saludos
[size=109]Solo sed que nada sed!!!!!![/size]