Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/08/2009, 13:24
Avatar de erick_arcini
erick_arcini
 
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 10 meses
Puntos: 50
Respuesta: Ayuda en c# (acceder a array de Clase/Struct members en varios forms)

Cita:
Iniciado por kayfaxx Ver Mensaje
Prueba con Cross Page PostBack. Lo que haríamos sería, desde una página origen, obtener unos datos de esta desde la página actual. En la página destino añades la directiva:

@PreviousPageType VirtualPath="~/anterior.aspx"

y luego en el evento Load recoges el dato de la siguiente forma (ejemplo):

TextBox txtNombre = (Textbox) Page.PreviousPage.FindControl("TextBox1");
String nombre = txtNombre.Text;

En tu caso yo lo haría utilizando un HiddenField al final de la página donde cargaría la estructura cargada. En este caso sería recogerlo del valor del Hidden, pasarlo a un object y convertirlo a tu array de estructura. Sino, siempre te queda recurrir a las Session
Haber, haber, momento, eso que dices tu esta bien, pero creo que aquí el brother necesita ayuda en el aspecto de que es un windows form, o me equivoco???

Cita:
Iniciado por Dradi7 Ver Mensaje
entonces debes declarar a tu clase como public y static para que ya no tengas que instanciar la clase y poder tomar todos los datos cuando sea modificado por cualquier form

Código C#:
Ver original
  1. class CEquipos
  2. {
  3.     private static string _Nombre;
  4.     public static string nombre
  5.    {
  6.       get { return _Nombre; }
  7.       set { _Nombre = value; }
  8.    }
  9. }
aún así tiene que estar transportando la clase por cada uno de los forms:

codigo para form1 (Lo pongo en forma de algoritmo por que no recuerdo por el momento la sintaxis como tal, a parte de que mi arroz se esta quemando )
Código:
case form1
{
    clase heredada
    {//TODO: El contenido de tu clase CEquipos}

     private CEquipos objHeredado;
     public CEquipos heredaTuClase
     {
          get
         {
               return objHeredado;
         }
         set
         {
               objHeredado = value;
          } 
     }


     Form1_Load()
     {
            //TODO: tu código de manejo va aquí y si deseas instancia tu clase...
     }  

//suponiendo que de btnAbrir tienes que llamar a otro form (llamdo Form2) en este ejemplo, entonces

     btnAbrir_Click blablabla
     {
          Form2 obj = new Form2();
          obj.heredaTuClase = objHeredado; //fijate en esta propiedad y en el siguiente bloque de code va a aparecer también.
          obj.showDialog();
          ...
         

     }

}
Código para tu clase form2
Código:
case Form2
{
    clase heredada
    {//TODO: El contenido de tu clase CEquipos}

     private CEquipos objHeredado;
     public CEquipos heredaTuClase
     {
          get
         {
               return objHeredado;
         }
         set
         {
               objHeredado = value;
          } 
     }


     Form1_Load()
     {
            //TODO: aqui hacemos la carga de lo que se te antoje
     }  

//suponiendo que de clicn en btnAdios para regresar al otro form, entonces

     btnAdios_Click blablabla
     {
           objHeredado.Items.Add(xOBJ); //siponiendo que tu clase hereda de system.collection
           this.close(); //que facil :borracho:
     }

}
ahora bien, en tu Form1, si depuras con un punto de interrupción después del showdialog te darás cuenta que tu objeto ya tiene otro registro insertado directamente del Form2, no sin antes devolverlo primero, como?, bueno pues por eso tienes el set:

En Form1 después del showdialog:
Código:

this.objHeredado = obj.heredaTuClase; //obj es Form2

Espero eso te ayude, sino deja que llegue a la oficina y hago pruebas para ver mas o menos como podrías heredar mejor ese objeto, mientras deja ir a la cocina a cambiar mi arroz de cazuela por que ya se me pego
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.