Personas que lo han encontrado útil: 0 de 1 - Valorar este tema

DataGridView.CellContentClick (Evento)

Se produce cuando se hace clic en el contenido de una celda.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public event DataGridViewCellEventHandler CellContentClick
/** @event */
public void add_CellContentClick (DataGridViewCellEventHandler value)

/** @event */
public void remove_CellContentClick (DataGridViewCellEventHandler value)

En JScript, se pueden controlar los eventos que define una clase, pero no se pueden definir unos propios.
No aplicable.

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 de verificación 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 de verificación, 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 de verificación, debe llamar al método DataGridView.CommitEdit y pasarle el valor Commit.

Para obtener más información sobre el control de 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 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)