Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
DataGridView.CellContentClick (Evento)
Se produce cuando se hace clic en el contenido de una celda.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
Este evento se produce cuando se hace clic en el contenido de la celda. También se produce cuando el usuario presiona y suelta la BARRA ESPACIADORA mientras una celda de botón o una casilla tiene el foco, y se producirá dos veces para estos tipos de celda si se hace clic en la celda mientras se presiona la BARRA ESPACIADORA.
Utilice este evento para detectar los clics de botón para un DataGridViewButtonCell o los clics en vínculos de un DataGridViewLinkCell.
Para los clics en DataGridViewCheckBoxCell, este evento se produce antes de que cambie el valor de la casilla, por lo que si no desea calcular el valor esperado en función del valor actual, normalmente deberá controlar el evento DataGridView.CellValueChanged como alternativa. Dado que ese evento sólo se produce cuando se confirma el valor especificado por el usuario, que se suele producir cuando el foco deja la celda, también deberá controlar el evento DataGridView.CurrentCellDirtyStateChanged. En ese controlador, si la celda actual es una celda de casilla, debe llamar al método DataGridView.CommitEdit y pasarle el valor Commit.
Para obtener más información sobre cómo controlar eventos, vea Utilizar eventos.
El ejemplo de código siguiente proporciona un controlador para este evento que determina si la celda en la que se hizo clic es una celda de vínculo o una celda de botón, y realiza la acción correspondiente. Este ejemplo forma parte de un ejemplo más extenso que está disponible en el tema de información general sobre la clase DataGridViewComboBoxColumn.
private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (IsANonHeaderLinkCell(e)) { MoveToLinked(e); } else if (IsANonHeaderButtonCell(e)) { PopulateSales(e); } } private void MoveToLinked(DataGridViewCellEventArgs e) { string employeeId; object value = DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; if (value is DBNull) { return; } employeeId = value.ToString(); DataGridViewCell boss = RetrieveSuperiorsLastNameCell(employeeId); if (boss != null) { DataGridView1.CurrentCell = boss; } } private bool IsANonHeaderLinkCell(DataGridViewCellEventArgs cellEvent) { if (DataGridView1.Columns[cellEvent.ColumnIndex] is DataGridViewLinkColumn && cellEvent.RowIndex != -1) { return true; } else { return false; } } private bool IsANonHeaderButtonCell(DataGridViewCellEventArgs cellEvent) { if (DataGridView1.Columns[cellEvent.ColumnIndex] is DataGridViewButtonColumn && cellEvent.RowIndex != -1) { return true; } else { return (false); } } private DataGridViewCell RetrieveSuperiorsLastNameCell(string employeeId) { foreach (DataGridViewRow row in DataGridView1.Rows) { if (row.IsNewRow) { return null; } if (row.Cells[ColumnName.EmployeeId.ToString()].Value.ToString().Equals(employeeId)) { return row.Cells[ColumnName.LastName.ToString()]; } } return null; }
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.