Foros del Web » Programación para mayores de 30 ;) » .NET »

CheckBoxColumn en DatagridView - Consulta

Estas en el tema de CheckBoxColumn en DatagridView - Consulta en el foro de .NET en Foros del Web. Buenas gente del foro. Estoy haciendo una aplicacion donde manualmente agrego una columna de checkbox a un datagridview que trae datos desde una base datos ...
  #1 (permalink)  
Antiguo 27/05/2008, 15:51
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años, 1 mes
Puntos: 6
Pregunta CheckBoxColumn en DatagridView - Consulta

Buenas gente del foro.

Estoy haciendo una aplicacion donde manualmente agrego una columna de checkbox a un datagridview que trae datos desde una base datos en VB.NET 2005.

Necesito saber como controlo el checkeo o descheckeo de cada celda. Le estuve buscando la vuelta, pero no doy. Tambien hice una busqueda intensiva en el foro y tampoco.

El tema es el siguiente, cada registro tiene un codigo de barras (de productos), y al hacer click en el checkbox column se genera una imagen en base al codigo de barras. Ahora bien, cuando se clickea en el checkbox pongo un dialogo de confirmación para generar la imagen. En caso del que el check no este checkeado y se haga click y yo elija que NO se genere la imagen, igual se checkea.
Lo que necesito es que al hacer click en el check, si el usuario elige que NO, no se checkee, y en caso de que elija que SI, solamente se checkee.

Se entiende? Espero respuestas...

Gracias.-
  #2 (permalink)  
Antiguo 28/05/2008, 12:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 24
Antigüedad: 16 años
Puntos: 1
Respuesta: CheckBoxColumn en DatagridView - Consulta

Si lo he entendido bien, tu quieres hacer esto:

Código:
        void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {

            if (e.ColumnIndex == 2)
            {
                FormQuestion form = new FormQuestion();
                dataGridView1.Rows[e.RowIndex].Cells[2].Value = (form.ShowDialog() == DialogResult.OK);
                e.Cancel = true;
            }
        }
Suponiendo que la columna con el check sea la numero 2 claro.

Espero que te sirva.
  #3 (permalink)  
Antiguo 28/05/2008, 12:53
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años, 1 mes
Puntos: 6
Respuesta: CheckBoxColumn en DatagridView - Consulta

Hola, yo lo necesito para Visual Basic.NET... Basandome en lo que me diste lo cambie a sintaxis de VB, y no me funciono... Paso a mostrar lo que quedo:

Código:
        If e.ColumnIndex = 0 Then
            If MessageBox.Show("si o no?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                e.Cancel = True
            End If
        End If
Creo que por ahi anda la cosa, pero sigo sin saber como hacerlo, seria como hacer esto:

Código:
Si se eligio ok en cuadro de dialogo... checkeo... sino... no checkeo
dataGridView1.Rows(e.RowIndex).Cell(0).Value = (Checke o Unchecked)
Pero el hecho es que cuando pongo Checked al value, no me reconoce como un valor...

Algun otro consejo??? :S
  #4 (permalink)  
Antiguo 29/05/2008, 11:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 24
Antigüedad: 16 años
Puntos: 1
Respuesta: CheckBoxColumn en DatagridView - Consulta

El e.Cancel = True, lo que hace es evitar que el click que el usuario ha hecho en el checkbox edite la celda.

El codigo seria:
Código:
If e.ColumnIndex = 0 Then
            If MessageBox.Show("si o no?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
                dataGridView1.Rows(e.RowIndex).Cell(0).Value = False
            Else
                dataGridView1.Rows(e.RowIndex).Cell(0).Value = True
            End If
            e.Cancel = True
        End If
Debes establecer e.Cancel a True independientemente de lo que haya escogido el usuario.
La propiedad Value la debes establecer a un Bool, ya que es un checkbox. Asegurate de hacerlo en el evento CellBeginEdit, o no funcionara correctamente.

Ya me diras si te va bien asi.
  #5 (permalink)  
Antiguo 29/05/2008, 12:47
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años, 1 mes
Puntos: 6
Respuesta: CheckBoxColumn en DatagridView - Consulta

Muchisimas gracias!!! Ha funcionado correctamente!!!

Te has ganado karma a favor!!! Gracias nuevamente!
  #6 (permalink)  
Antiguo 01/07/2008, 11:54
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 4 meses
Puntos: 1
Respuesta: CheckBoxColumn en DatagridView - Consulta

Ese karma está suspendido temporalmente.

Yo tengo un caso similar y cuando hago clic por primera vez en cualquier Chexbox, efectivamente coloca la "Marca" y al lado izquierdo de la fila aparece el ícono en forma de lápiz, indicado que le selda fue "Editada/cambiada...".

Tengo un Botón que le llamo "btnAplicar" que se habilitará al marcar cualquier CheckBox, pero no ocurre así siempre. No se por qué debo tocar varias veces en otra casilla para que eso ocurra.

Aquí un ejemplo:
If e.ColumnIndex = 0 Then

Dim pChkDtc As Integer = 0

With DataGridView1

Dim i As Integer = 0
For i = 0 To .RowCount - 1
If .Rows(i).Cells(0).Value = True Then
pChkDtc += 1
End If
Next
End With
If pChkDtc > 0 Then
btnAplicar.Enabled = True
Else
btnAplicar.Enabled = False
End If
End If
Repito, no se dónde estará mi error, asumiendo que lo dicho por ustedes es lo correcto.

Todo está dentro del evento CellBeginEdit.

Por otro lado, por favor, ¿Pueden indicarme algún código que me evite "barrer" todo el DataGridView?

Se que puede hacerse con DataGridView1.SelectedRows(i).Index o tal vez usando el DataGridView1.SelectedCells(i).RowIndex, pero no se me ocurre cómo hacerlo.

Saludos.

Última edición por jcl; 01/07/2008 a las 12:04
  #7 (permalink)  
Antiguo 05/06/2009, 16:00
 
Fecha de Ingreso: junio-2009
Mensajes: 2
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: CheckBoxColumn en DatagridView - Consulta

Hola a todos me ayudo mucho el codigo que mandan
Tengo un situacion tengo un datagridview donde almaceno cuentas ahora con un checkboxcolumns quiero seleccionar a las filas de mi grid y con boton sumar los montos de la cuenta lo que quiero saber es como controlas cuales son las filas con checked para sumarlas cualquier idea, solucion me gustaria que me la mandaran
  #8 (permalink)  
Antiguo 05/06/2009, 16:01
 
Fecha de Ingreso: junio-2009
Mensajes: 2
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: CheckBoxColumn en DatagridView - Consulta

Hola a todos me ayudo mucho el codigo que mandan

Tengo un situacion tengo un datagridview donde almaceno cuentas ahora con un

checkboxcolumns quiero seleccionar a las filas de mi grid y con boton sumar los

montos de la cuenta lo que quiero saber es como controlas cuales son las filas

con checked para sumarlas cualquier idea, solucion me gustaria que me la

mandaran
  #9 (permalink)  
Antiguo 05/06/2009, 16:42
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 4 meses
Puntos: 1
Respuesta: CheckBoxColumn en DatagridView - Consulta

No soy de los que acostumbran a responder con preguntas, pero eso ya ha sido resuelto en la versión .Net Framework 2.0 en adelante.

Yo encontré por ahí hace tiempo atrás, un ejemplo que hace exactamente lo que tu solicitas y, obviamente, lo adopté e incluí en mi programa.

No tengo idea de cómo te podré ayudar, pero si alguien (o tu mismo) me dice cómo enviarte un fragmento del código que yo uso para hacer eso, entonces te lo puedo enviar.

Allí podrás ver que al hacer clic en cualquiera de los "CheckBox", automáticamente se suma o se resta, la cantidad que indica determinada columna, según la fila donde esté ubicado el "CheckBox" respectivo.

Según entiendo, algo así es lo que estás pidiendo... ¿es o no?

El conocimiento no tiene propietario... al menos, así lo creo yo.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:07.