C sharp - Pasar un valor de un form a otro

 
Vista:
sin imagen de perfil

Pasar un valor de un form a otro

Publicado por Sebastián (3 intervenciones) el 27/07/2017 19:34:48
Hola, saludos con todos.

Estoy haciendo una aplicacion en c#,(soy algo nuevo en esto), con ingreso de datos mediante un form al cual he llamado login,y necesito imprimir esos datos en un pdf, para ello he utilziado una clase llamada estudiante, donde estan mis metodos, para este fin.

El problema se da al momento de guardar los valores de ingreso (nombre, apellido), puesto que no puedo guardarlos en la clase estudiante, he intentado varias cosas pero no doy solución,

En el formulario, las variables guardan bien el valor, pero en la clase no tiene valor alguno. este es el codigo del formulario de ingreso, los valores ingresados guardo en la clase estudiante, pero al momento de imprimir los valores en este clase, no existe.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void btnIngresar_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text != "" && txtApellido.Text != "" && txtGrade.Text != "")
            {
                Nombre = txtNombre.Text;
                Apellido = txtApellido.Text;
 
                label1.Visible = true;
                label2.Visible = true;
                label3.Visible = true;
                label4.Visible = true;
                label2.Visible = true;
 
                est.Nombre = txtNombre.Text;
 
                est.Apellido = txtApellido.Text;
                est.Grado = txtGrade.Text;// nudGrade.Value.ToString();
            }
        }

Quizás alguien pudiese orientarme de mejor manera

Les agradecería mucho
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 28 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Pasar un valor de un form a otro

Publicado por Jua Carlos (2 intervenciones) el 28/07/2017 01:57:50
Hola Sebastián, es conveniente que en la clase estudiante tengas un constructor que asigne los valores
a los miembros, de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Clase Estudiante
class Estudiante{
    public string Nombre;
    public string Apellido;
    public string Grado;
 
    // Cosntructor por defecto
    public Estudiante(){
    }
 
    // Constructor que asigna valores a los miembros de la clase
    public Estudiante(string nombre, string apellido, string grado){
        this.Nombre = nombre;
        this.Apellido = apellido;
        this.Grado = grado;
    }
}

Luego, para almacenar los datos en un objeto de esta clase se haria de la siguiente forma:
Estudiante est = new Estudiante(txtNombre.Text, txtApellido.Text, txtGrade.Text)
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
sin imagen de perfil

Pasar un valor de un form a otro

Publicado por Sebastián (3 intervenciones) el 28/07/2017 03:15:05
Hola Juan! gracias por tu ayuda, fijate, que hice lo que me indicaste pero la verdad, no sirve :(
Así quedo la clase estudiante.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Estudiante
    {
 
 
 
        public string Nombre;
        public  string Apellido;
        public  string Paralelo;
        public string Grado;
 
 
        public Estudiante()
        {
 
        }
 
        public Estudiante(string nombre, string apellido, string grado)
        {
            this.Nombre = nombre;
            this.Apellido = apellido;
            this.Grado = grado;
}
        }

mientras que el frm de ingreso quedo asi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void btnIngresar_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text != "" && txtApellido.Text != "" && txtGrade.Text != "")
            {
 
 
                label1.Visible = true;
                label2.Visible = true;
                label3.Visible = true;
                label4.Visible = true;
                label2.Visible = true;
                Estudiante est = new Estudiante(txtNombre.Text, txtApellido.Text, txtGrade.Text);
            }
}

Quizás este haciendo algo mal, te agradezco por tu comentarios.
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
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Pasar un valor de un form a otro

Publicado por Yamil (1164 intervenciones) el 28/07/2017 03:40:10
Creo que el problema es el ambito de la variable. Estas definiendo el objeto de la clase Estudiante dentro del click del boton. Al terminar ese evento la variable desaparece.
Asi que debees definir la instancia de esa clase fuera de dicho evento, como pudiera ser en el formulario donde estas trabajando...
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
Imágen de perfil de LuisMX
Val: 7
Ha aumentado su posición en 18 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Pasar un valor de un form a otro

Publicado por LuisMX (3 intervenciones) el 28/07/2017 22:17:50
Saludos, como comenta Yamil tienes que asignar el valor de la clase Estudiante como propiedad del formulario, te muestro un ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// formulario Inicial:
...
FormLogin formulario = new FormLogin();
formulario.ShowDialog();
Estudiente estudiente = formulario.est;
formulario.Dispose();
 
MessageBox.Show(estudiente.Nombre + " " + estudiente.Apellido);
...
 
 
// formulario FormLogin:
...
public Estudiante est;    // creara la propiedad para el formulario
 
private void btnIngresar_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text != "" && txtApellido.Text != "" && txtGrade.Text != "")
            {
                label1.Visible = true;
                label2.Visible = true;
                label3.Visible = true;
                label4.Visible = true;
                label2.Visible = true;
                est = new Estudiante(txtNombre.Text, txtApellido.Text, txtGrade.Text);
            }
}
...
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