DataGridView.CellContentClick Olay

Tanım

Bir hücre içindeki içeriğe tıklandığında gerçekleşir.

C#
public event System.Windows.Forms.DataGridViewCellEventHandler CellContentClick;
C#
public event System.Windows.Forms.DataGridViewCellEventHandler? CellContentClick;

Olay Türü

Örnekler

Aşağıdaki kod örneği, tıklanan hücrenin bir bağlantı hücresi mi yoksa düğme hücresi mi olduğunu belirleyen ve sonuç olarak karşılık gelen eylemi gerçekleştiren bu olay için bir işleyici sağlar. Bu örnek, sınıfa genel bakış konusunda bulunan DataGridViewComboBoxColumn daha büyük bir örneğin bir parçasıdır.

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

Açıklamalar

Bu olay, hücre içeriğine tıklandığında oluşur. Ayrıca, bir düğme hücresi veya onay kutusu hücresi odaktayken kullanıcı ARA ÇUBUĞU'na basıp bıraktığında da gerçekleşir ve ARA ÇUBUĞU'na basılırken hücre içeriğine tıklandığında bu hücre türleri için iki kez gerçekleşir.

Bir veya bağlantısı tıklamalarının düğme tıklamalarını DataGridViewButtonCell algılamak için DataGridViewLinkCellbu olayı kullanın.

içindeki DataGridViewCheckBoxCelltıklamalar için, bu olay onay kutusu değeri değiştirmeden önce gerçekleşir, bu nedenle beklenen değeri geçerli değere göre hesaplamak istemiyorsanız, genellikle bunun yerine olayı işlersiniz DataGridView.CellValueChanged . Bu olay yalnızca kullanıcı tarafından belirtilen değer işlendiğinde gerçekleştiğinden ( genellikle odak hücreden ayrıldığında gerçekleşir) olayı da işlemeniz DataGridView.CurrentCellDirtyStateChanged gerekir. Bu işleyicide, geçerli hücre bir onay kutusu hücresiyse yöntemini çağırın DataGridView.CommitEdit ve değeri geçirin Commit .

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Ayrıca bkz.