Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2008, 08:25
encator
 
Fecha de Ingreso: enero-2005
Ubicación: Valencia
Mensajes: 66
Antigüedad: 19 años, 3 meses
Puntos: 0
DataGridView seleccionar filas

Buenas a todos, tengo un DataGridView al que le añado una columna con Chechbox de la siguiente manera

if (Panel_Ingresos_Agrupados.Columns.Contains("chkSel eccionar"))
{
Panel_Ingresos_Agrupados.Columns.Remove("chkSelecc ionar");
}
DataGridViewCheckBoxColumn chkColumn = new DataGridViewCheckBoxColumn();
chkColumn.Name = "chkSeleccionar";
chkColumn.HeaderText = "Seleccionar";
chkColumn.Width = 75;
chkColumn.CellTemplate = new DataGridViewCheckBoxCell();
Panel_Ingresos_Agrupados.Columns.Add(chkColumn);
Paint_PanelIngresos(Panel_Ingresos_Agrupados)


Una vez hecho esto lo que pretendo es sumar los valores de una columna llamada importetotal en función de la selección del Checkbox.
Para hacer esto he probado con varios eventos, CellBeginEdit,CellClick,CellMouseClick pero ninguno de ellos me da el resultado esperado. Por ejemplo, si tengo tres filas y marco el 1º no me totaliza, pero al marcar la segunda fila en el total me muestra el valor de la primerafila, y si marco la 3ª fila en el total me muestra la suma de la 1ª y la 2ª.
El código es:

try
{
if (e != null)
{
if (e.RowIndex >= 0)
{
decimal total = 0;
decimal totallinea = 0;
for (int i = 0; i < Panel_Ingresos_Agrupados.Rows.Count ; i++)
{
bool seleccionado = Convert.ToBoolean(Panel_Ingresos_Agrupados.Rows[i].Cells["chkSeleccionar"].FormattedValue);
if (seleccionado)
{
totallinea = Convert.ToDecimal(Panel_Ingresos_Agrupados.Rows[i].Cells["ImporteTotal"].Value);
total = total + totallinea;
}
}
IngresosAgrupados_Total.Text = total.ToString();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}


Agradecería cualquier ayuda, estoy mirando por el foro pero nada de nada.
Gracias