Pasar Informacion Entre Formularios

lunes, 30 de abril de 2012

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...

0 comentarios:

Publicar un comentario en la entrada

Nota: solo los miembros de este blog pueden publicar comentarios.