ProgramaciĆ³n, TecnologĆ­a y MĆ”s...

ProgramaciĆ³n, TecnologĆ­a y MĆ”s...

Pasar Informacion Entre Formularios

Cuando se desarrollan aplicaciones con formularios algunas veces es necesario pasar informaciĆ³n de un formulario hacia otro, les traigo un pequeƱo ejemplo de como hacer esto.

Existen muchas maneras de hacerlo pero en este pequeƱo ejemplo les mostrare una manera de hacerlo fƔcilmente.

Para empezar creamos 2 formularios (Los 2 tendrƔn los mismos controles).

Formulario principal.

Principal

Y el formulario 2 que sera donde pasaremos el dato.

Form 2

Para el caso de este ejemplo cargo los datos en el datagriedview de manera manual no uso ninguna base de datos.

Empezamos con el cĆ³digo del formulario principal.
namespace PasarInformacion
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//variables que usaremos para pasar la informacion
public static int id;
public static string nombre;
public static string pais;

//metodo para cargar los datos
private DataTable Datos()
{
DataTable dt = new DataTable();

dt.Columns.Add("Id");
dt.Columns.Add("Nombre");
dt.Columns.Add("Pais");
//Agregar Datos
DataRow row = dt.NewRow();
row["Id"] = 1;
row["Nombre"] = "Juan";
row["Pais"] = "EspaƱa";
dt.Rows.Add(row);

row = dt.NewRow();
row["Id"] = 2;
row["Nombre"] = "Ana";
row["Pais"] = "El Salvador";
dt.Rows.Add(row);

row = dt.NewRow();
row["Id"] = 3;
row["Nombre"] = "Miguel";
row["Pais"] = "Argentina";
dt.Rows.Add(row);

return dt;
}

private void Form1_Load(object sender, EventArgs e)
{
//cargo los datos en el datagrid
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = Datos();
}

private void btnabrir_Click(object sender, EventArgs e)
{
DataGridViewRow row = dataGridView1.CurrentRow;
if (row != null)
{
//guardamos los datos de la fila en las variables
id = Convert.ToInt32(row.Cells[0].Value);
nombre = row.Cells[1].Value.ToString();
pais = row.Cells[2].Value.ToString();
Form2 ob = new Form2();
ob.Show();
}

}
}
}

Lo importante del cĆ³digo de este formulario es las variables que definimos a nivel de clase que son las que usaremos para pasar la informaciĆ³n al formulario 2, luego se crea un mĆ©todo DataTable que es donde se cargan los datos que mostraremos en el datagriedview que en este caso solo son 3.
Otro aspecto importante es el cĆ³digo que esta dentro del evento click del botĆ³n que invoca al formulario 2 pero tambien guardamos los datos de la fila seleccionada en las variables que definimos a nivel de clase.

Luego en el form 2 tenemos el siguiente codigo.
namespace PasarInformacion
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

private DataTable Datos()
{
DataTable dt = new DataTable();

dt.Columns.Add("Id");
dt.Columns.Add("Nombre");
dt.Columns.Add("Pais");
//cargar los datos con las variables del form principal
DataRow row = dt.NewRow();
row["Id"] = Form1.id ;
row["Nombre"] = Form1.nombre ;
row["Pais"] = Form1.pais ;
dt.Rows.Add(row);
return dt;
}


private void Form2_Load(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = Datos();
}

private void btncerrar_Click(object sender, EventArgs e)
{
Close();
}

}
}

Como pueden ver este cĆ³digo tambien tenemos un mĆ©todo que es donde cargaremos los datos del datagriedview, solo que a diferencia del anterior esta vez cargamos los datos con las variables del formulario principal.

resultado

Descargar Ejemplo Descargar CĆ³digo

Saludos desde El Salvador...

Publicar un comentario

0 Comentarios