Un tema muy seguido y utilizado por muchos programadores y principiantes que se les dificulta
pasar datos a otro formulario desde un DataGridView .
En está oportunidad les voy a enseñar como pasar estos valores a un segundo formulario y
también que estos se almacenen en algunos texbox.
Lo primero que debemos de hacer es arrastrar desde el Cuadro de de herramientas nuestro
control DataGridView luego dirigirnos a un evento del DataGridView llamado CellDoubleClick este lo que hace es que cuando usted de doble click en la grilla de los datos cargados
ejecutara esa función, por eso haremos nuestro procedimiento en este evento.
A continuación el método a utilizar:
En la imagen podemos observar que lo primero que hacemos es crear una instancia del formulario que tienen nuestros texbox y estos deben de estar public para poder acceder a ellos lo siguiente es es crear un ciclo con un foreach donde creamos un variable de tipo Form y donde este se verificara cuando el formulario este abierto para ejecutar el método que contiene dentro de el, luego hacemos una decisión que esta nos ayudara a comparar que el nombre de nuestro formulario que instanciamos es el correcto, si es de esa manera se ejecuta el método donde se le pasa la información al formulario 2 y este posteriormente por medio de Frm2 que es nuestra instancia creada utiliza los texbox y le asigna a estos la posición de nuestras celdas del DataGridView que es donde está cargada la información de nuestra BD.
El ultimo paso seria cerrar nuestro formulario y romper el ciclo foreach con el break.
Espero que les allá servido de ayuda.
hola como aria en mi caso me sale Private sub .... y no lo reconoce
ResponderEliminarMe parece que no estas en el evento correspondiente , revisa bien la ruta que describo y cualquier cosa me haces saber. suerte!!
ResponderEliminarHola me aparece un error de No se puede convertir el tipo 'ProyectoLink1.MenuPrincipal' te dejo el codigo:
ResponderEliminarprivate void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
try
{
VentanaTextBoxLink TextBox = new VentanaTextBoxLink();
foreach (MenuPrincipal Menu in Application.OpenForms)
{
if (Menu.Name == "VentanaTextBoxLink")
{
TextBox = (VentanaTextBoxLink)Menu;
TextBox.txtCopiaLink.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
this.Close();
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
El error esta en la fila 10 que es esta: TextBox = (VentanaTextBoxLink)Menu;
Por favor ayuda.........
Aclaro que MenuPrincipal es el form donde tengo el datagridview y ventanaTextBox es la ventana que se abrira con el textBox.
ResponderEliminarcomo coloco las cajas de texto en PUBLIC...
ResponderEliminarno me reconoce al momento de querer pasar la variable
gracias
cambia la propiedad Modifiers a public en el formulario que tienes los textbox
ResponderEliminary eso seria todo, asi las reconocera
mr eres un genio, estaba atorado en este problemita
ResponderEliminarHola, ¿oye y si quiero hacer el proceso inverso? ¿Pasar datos de un combobox a un datagridview en diferentes ventanas? Podrías ayudarme por favor? Te lo agradecería
ResponderEliminarEL PRIMER ERROR ME SALE AQUI: Frm2 = (CuenCobrar2); --> ES TIPO PERO SE UTILIZA COMO VARIABLE
ResponderEliminarEL SEGUNDO ERROR ME SALE AQUI: Frm2.TxtIdDoc.Text = NO ES ACCESIBLE DEBIDO A SU NIVEL DE PROTECCION
TE AGRADECERIA MUCHO SI ME DAS UNA MANO CON ESTO
private void DgvCuencobrar_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
try
{
CuenCobrar2 Frm2 = new CuenCobrar2();
foreach (CuenCobrar frm in Application.OpenForms)
{
if (frm.Name == "CuenCobrar2")
{
Frm2 = (CuenCobrar2);
Frm2.TxtIdDoc.Text = DgvCuencobrar.CurrentRow.Cells[0].Value.ToString();
this.Close();
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
MUCHAS GRACIAS BROTHER ME SIRVIO MUCHO, EN SERIO GRACIAS!!!
ResponderEliminarsi tienes un canal en youtube porfa pasame tu link
ResponderEliminarcomo resolver lo del nivel de proteccion?
ResponderEliminarme da ese error no me deja acceder al texbox del otro form
como haría esto en visual basic
ResponderEliminarAl momento de llamar al formulario k contiene el grid Y si esta vacío da error como controlo esta excepción Ya intente haciendo datagrid.rows. count >0 pero no controla
ResponderEliminarMuchas gracias genio.
ResponderEliminarGraciass!! Me sirvió!! pase ratos intentando hacer esto
ResponderEliminarGraciaaassssss!!! jajaja Si fuera rico te enviaria mucho dinero!!!! tienes canal en Youtube?
ResponderEliminartenia 5 horas leyendo foros e intentando y nada me funcionaba, gracias totales, esto si funciona correctamente y sin tanto rollo,
ResponderEliminarwe sos un genio papa, Mientras otros hacen 10000 lineas de codigo para hacer lo mismo tu solo 5 resuelto esta vaina
ResponderEliminarExcelente aporte y la manera mas simplificada que encontre en la red después de horas, gracias!
ResponderEliminarGracias Amigo, me ayudaste en mucho. :)
ResponderEliminarGracias a todos por sus comentarios, sí alguien aún presenta alguna dificultad dejarme saber. Hasta Luego!
ResponderEliminarHola yo tengo un problema, es que al hacer doble click me aparece un nuevo formulario pero me ingresa los datos en el formulario anterior, no en el que aparece selecciono y me queda el textbox en blanco pero en el formulario anterior me cambia el nombre del paciente y del medico ... nose que hacer ...
EliminarHola amigo, como podría hacer para que en vez de que tenga que estar abierto el formulario, que me lo abra automaticamente? Saludos, muy buen artículo!
ResponderEliminarhermano eres un genio, excelente.
ResponderEliminarbuena bro te pasates
ResponderEliminarme da error
ResponderEliminarmuy agradecido , algo tan sencillo pero los que empezamos no tenemos idea de como hacer
ResponderEliminarSaludos, dejame decirte que tengo horas de fallar en eso y gracias a usted lo logre en pocas lineas de codigo, muchas gracias.
ResponderEliminarTengo una consulta estoy realizando un proyecto para mi universidad en donde quiero pasar los datos de un datagridview de un formulario a los combobox y textbox de otro formulario... al momentos de ejecutar el codigo unicamente me captura los textbox pero los combobox no me captura los combobox. Podrias mostrar un ejemplo de como harias el codigo para que me cacture los combobox.. espero tu pronta respuesta
ResponderEliminarUffff muchas gracias bro,tenia 3 días tratando de resolver ese problema y no había podido, de verdad gracias
ResponderEliminarmuchas gracias bro, estaba batallando en eso
ResponderEliminarExcelente Muchas Gracias
ResponderEliminar