Tengo un datagrid poblado y mediante un control textbox deseo ubicar un dato en una columna especifica del datagrid. ¿Cómo hago esto? Gracias por su ayuda.
{"lat":-12.0549754363021,"lng":-77.0500373840332}
1 Respuesta
Respuesta de darkastaroth
1
1
darkastaroth, tengo lo basico en desarrollo de sistemas informaticos en VB y CSharp
Podría ser de dos formas... aunque falta algo que expliques, por ejemplo si quieres hacerlo cada vez que se escribe algo en el TextBox, deberías entonces ocupar el evento TextChanged del TextBox, en el deberías hacer un barrido de todo el contenido del data gridview en la columna deseada, para saber si lo que hay en el textbox esta en alguna fila. Manejo C# es y seria algo así (Si lo quieres en VB ... también lo puedo hacer, pero como domino más c# por eso me voy por ese lado, deberías ser especifico en que lenguaje lo necesitas)... private void MiCajaTexto_TextChanged(object sender, EventArgs e) { for (int i = 0; i < MiDataGrid.Rows.Count; i++) { if (MiDataGrid.Rows.Cells["MiColumna"].Value.ToString().Contains(this.MiCajaTexto.Text)) { this.MiDataGrid.CurrentCell = this.dgvContratos.Rows.Cells["MiColumna"]; break; } } } El método Contains recibe un string y devuelve verdadero si el string que pasa como parámetro lo contiene la cadena que manda a llamar el método es decir: MiTextoDePrueba. Contains(Prueba)---->Verdadero MiTextoDePrueba. Contains(yyyyy)---->False Con esto: this.MiDataGrid.CurrentCell = this.dgvContratos.Rows.Cells["MiColumna"]; Hacemos que se seleccione la fila que contiene el dato. Y por ultimo ponemos un break, de esta manera rompemos el ciclo del for. Si tienes alguna otra duda... no dudes en enviarle... espero que mis pocos conocimientos puedan ser de tu ayuda. Ahhh, por cierto la otra forma es agregando un botón que ejecute el procedimiento anterior, así te evitas que cada que cambie el texto se realice el barrido de los datos en el datagridview
darkastaroth: Gracias por tu respuesta. Voy a probar de las dos formas, para evaluar cual se comporta mejor de acuerdo al volumen de datos que manejo. Programo en VB 2005 y 2008, pero se comprende perfectamente en C#. Regresaré por aquí para contarles como me fue.
darkastaroth: Finalmente, opté por el BUTTON y lo resolví como lo muestro enseguida: For lnFila = 0 To dsDAT.Tables(0).Rows.Count - 1 If grdDAT.Item(lnFila, 0).ToString.Contains(msCODEMPR) Then grdDAT.CurrentRowIndex = lnFila grdDAT.Select(lnFila) Exit For End If Next Lo explico: Despues de encontrar la fila, cuya columna coincida con el valor buscado (msCODEMPR), establezcola como fila activa (grdDAT.CurrentRowIndex = lnFila), esto hace que se desplace el datagrid y quede a la vista la fila especificada. Enseguida la selecciono (grdDAT.Select(lnFila)) Muchas gracias, darkastaroth, por tu orientación y ayuda.