dos dudas con el DataGridView

21/09/2009 - 12:16 por Juan | Informe spam
1) Me gustaría cambiar el color de las filas que se hayan modificado ¿Se
puede?
2) ¿Como puedo acceder al combobox de una celda desde el evento CellEnter?

Saludos
 

Leer las respuestas

#1 SoftJaén
22/09/2009 - 16:07 | Informe spam
"Juan" preguntó:

1) Me gustaría cambiar el color de las filas que se hayan modificado ¿Se
puede?



Claro que se puede: referencia la celda actual y asígnale el color que
deseas a la propiedad BackColor, por ejemplo, en el evento
EditingControlShowing del control DataGridView:

private void provinciasDataGridView_EditingControlShowing(
object sender, DataGridViewEditingControlShowingEventArgs e)
{
// Celda actual
DataGridViewCell cell = dataGridView1.CurrentCell;

// Modificamos su color de fondo
cell.Style.BackColor = Color.YellowGreen;

}

2) ¿Como puedo acceder al combobox de una celda desde el evento CellEnter?




Desde el evento CellEnter, ignoro en estos momento cómo puedes referenciar
el control ComboBox subyacente existente en la celda. Si fuera en el evento
EditingControlShowing, es fácil referenciarlo, porque la propiedad Control
del segundo parámetro del evento, precisamente te da el tipo de control.

No obstante, al ser la celda del tipo DataGridViewComboBoxColumn, puedes
referenciar el objeto DataGridViewComboBoxCell. Mira a ver si te sirve el
ejemplo:

private void dataGridView1_CellEnter(
object sender, DataGridViewCellEventArgs e)
{
// Solamente si la celda es del tipo DataGridViewComboBoxCell
//
if (dataGridView1.CurrentCell is DataGridViewComboBoxCell)
{
// Referenciamos el control DataGridViewComboBoxCell actual.
//
DataGridViewComboBoxCell cb (DataGridViewComboBoxCell) dataGridView1.CurrentCell;

// Obtenemos el elememento actualmente seleccionado.
//
MessageBox.Show(cb.Value.ToString());

}

}

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares