DataGridView.CellValueChanged Olay

Tanım

Hücrenin değeri değiştiğinde gerçekleşir.

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

Olay Türü

Örnekler

Aşağıdaki kod örneği, olayının CellValueChanged bir bakiye sütunundaki DataGridViewdeğerleri güncelleştirmek için nasıl kullanılacağını gösterir. Bu örnek, olayda SelectionChanged kullanılabilen daha büyük bir örneğin bir parçasıdır.

C#
private void DataGridView1_CellValueChanged(
    object sender, DataGridViewCellEventArgs e)
{
    // Update the balance column whenever the value of any cell changes.
    UpdateBalance();
}

private void DataGridView1_RowsRemoved(
    object sender, DataGridViewRowsRemovedEventArgs e)
{
    // Update the balance column whenever rows are deleted.
    UpdateBalance();
}

private void UpdateBalance()
{
    int counter;
    int balance;
    int deposit;
    int withdrawal;

    // Iterate through the rows, skipping the Starting Balance row.
    for (counter = 1; counter < (DataGridView1.Rows.Count - 1);
        counter++)
    {
        deposit = 0;
        withdrawal = 0;
        balance = int.Parse(DataGridView1.Rows[counter - 1]
            .Cells["Balance"].Value.ToString());

        if (DataGridView1.Rows[counter].Cells["Deposits"].Value != null)
        {
            // Verify that the cell value is not an empty string.
            if (DataGridView1.Rows[counter]
                .Cells["Deposits"].Value.ToString().Length != 0)
            {
                deposit = int.Parse(DataGridView1.Rows[counter]
                    .Cells["Deposits"].Value.ToString());
            }
        }

        if (DataGridView1.Rows[counter].Cells["Withdrawals"].Value != null)
        {
            if (DataGridView1.Rows[counter]
                .Cells["Withdrawals"].Value.ToString().Length != 0)
            {
                withdrawal = int.Parse(DataGridView1.Rows[counter]
                    .Cells["Withdrawals"].Value.ToString());
            }
        }
        DataGridView1.Rows[counter].Cells["Balance"].Value =
            (balance + deposit + withdrawal).ToString();
    }
}

Açıklamalar

Olay DataGridView.CellValueChanged , kullanıcı tarafından belirtilen değer işlendiğinde gerçekleşir ve genellikle odak hücreden ayrıldığında gerçekleşir.

Ancak onay kutusu hücreleri söz konusu olduğunda, genellikle değişikliği hemen işlemek istersiniz. Hücreye tıklandığında değişikliği işlemek için olayı işlemeniz DataGridView.CurrentCellDirtyStateChanged gerekir. İşleyicide, geçerli hücre bir onay kutusu hücresiyse yöntemini çağırın DataGridView.CommitEdit ve değerini geçirin Commit .

Denetimdeki satırlar, hücre değeri değiştirildiğinde otomatik olarak sıralanmaz. Kullanıcı bir hücreyi değiştirdiğinde denetimi sıralamak için bir olay işleyicisinde CellValueChanged yöntemini çağırınSort.

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.