none
Pasaje de Información c# RRS feed

  • Pregunta

  • Hola que tal tengo una duda, estoy haciendo un trabajo para la facultad en visual studio, y mi problema es que necesito cargar los datos en un formulario (Form1) y que luego esos datos aparezcan cargados en otro formulario (Form2) que tiene un ListView. Mi duda principal es como hago para cargarlo ya que en el Form1 una vez cargados los datos toco un btnGuardar y ese me oculta el formulario actual y me muestra el Form2 y ahí es donde tendria que aparecer todos los datos cargados
    lunes, 9 de septiembre de 2019 13:10

Respuestas

  • Haz uso de una propiedad de solo lectura y la inicializas en el constructor de tu formulario, ya que en form2 siempre deben existir los datos entonces debes asegurarte de que al instanciarlo (o crearlo o construirlo) estos datos lleguen sí o sí, es como decir "quiero un nuevo form2" entonces te responderan "ok dame los datos que vas a mostrar, sino no hay nuevo form2".

    El tipo de datos de la propiedad puedes declararlo del mismo tipo de datos que usas en el form1, por ejemplo si es un datagridview y en el form1 lo llenas con un datatable entonces que tu propiedad sea de tipo datatable y lo llenas igual que en el form1, puedes llenar el control (datagridview por ejemplo) en el constructor

            public DataTable Datos { get; }//Propiedad solo lectura
    
    
            public Form2(DataTable datos)//Constructor exigiendo datos
            {
                InitializeComponent();
    
                Datos = datos;
                LlenarGrid();
    
            }
    
            private void LlenarGrid()
            {
                //Implementación, ej: dgvDatos.DataSource = Datos;
            }


    • Propuesto como respuesta Pablo RubioModerator miércoles, 11 de septiembre de 2019 16:51
    • Marcado como respuesta BenjamínT miércoles, 9 de octubre de 2019 13:59
    lunes, 9 de septiembre de 2019 13:47

Todas las respuestas

  • Y en el caso de que no sea un listview como seria con un DataGridView?
    lunes, 9 de septiembre de 2019 13:11
  • Haz uso de una propiedad de solo lectura y la inicializas en el constructor de tu formulario, ya que en form2 siempre deben existir los datos entonces debes asegurarte de que al instanciarlo (o crearlo o construirlo) estos datos lleguen sí o sí, es como decir "quiero un nuevo form2" entonces te responderan "ok dame los datos que vas a mostrar, sino no hay nuevo form2".

    El tipo de datos de la propiedad puedes declararlo del mismo tipo de datos que usas en el form1, por ejemplo si es un datagridview y en el form1 lo llenas con un datatable entonces que tu propiedad sea de tipo datatable y lo llenas igual que en el form1, puedes llenar el control (datagridview por ejemplo) en el constructor

            public DataTable Datos { get; }//Propiedad solo lectura
    
    
            public Form2(DataTable datos)//Constructor exigiendo datos
            {
                InitializeComponent();
    
                Datos = datos;
                LlenarGrid();
    
            }
    
            private void LlenarGrid()
            {
                //Implementación, ej: dgvDatos.DataSource = Datos;
            }


    • Propuesto como respuesta Pablo RubioModerator miércoles, 11 de septiembre de 2019 16:51
    • Marcado como respuesta BenjamínT miércoles, 9 de octubre de 2019 13:59
    lunes, 9 de septiembre de 2019 13:47