Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

DataGridView.CellContentClick-Ereignis

Tritt ein, wenn auf den Inhalt innerhalb einer Zelle geklickt wird.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
public event DataGridViewCellEventHandler CellContentClick

Dieses Ereignis tritt ein, wenn auf den Zelleninhalt geklickt wird. Es tritt außerdem ein, wenn der Benutzer die LEERTASTE drückt und loslässt, während eine Schaltflächenzelle oder Kontrollkästchenzelle den Fokus besitzt, und tritt zweimal bei diesen Zelltypen ein, wenn auf den Zelleninhalt geklickt wird, während die LEERTASTE gedrückt wird.

Ermitteln Sie mithilfe dieses Ereignisses, ob auf Schaltflächen für eine DataGridViewButtonCell oder auf Links für eine DataGridViewLinkCell geklickt wurde.

Beim Klicken in einer DataGridViewCheckBoxCell tritt dieses Ereignis auf, bevor sich der Wert des Kontrollkästchens ändert. Wenn Sie nicht den erwarteten Wert auf Grundlage des aktuellen Werts berechnen möchten, behandeln Sie stattdessen das DataGridView.CellValueChanged-Ereignis. Da das Ereignis nur nach Übermitteln des vom Benutzer angegebenen Werts auftritt (in der Regel, nachdem der Fokus die Zelle verlassen hat), müssen Sie auch das DataGridView.CurrentCellDirtyStateChanged-Ereignis behandeln. Wenn es sich bei der aktuellen Zelle um eine Kontrollkästchenzelle handelt, rufen Sie in diesem Handler die DataGridView.CommitEdit-Methode auf, und übergeben Sie den Commit-Wert.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.

Im folgenden Codebeispiel wird ein Handler für dieses Ereignis bereitgestellt, der bestimmt, ob die angeklickte Zelle eine Linkzelle oder eine Schalflächenzelle ist, und führt die entsprechende Aktion aus. Dieses Beispiel ist Teil eines umfangreicheren Beispiels, das im Übersichtsthema für die DataGridViewComboBoxColumn-Klasse bereitgestellt wird.


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;
}


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ