Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
DataGridView.CellValueChanged-Ereignis
Tritt ein, wenn sich der Wert einer Zelle ändert.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Das DataGridView.CellValueChanged-Ereignis tritt ein, wenn ein vom Benutzer angegebener Wert gespeichert wird, z. B. nachdem der Fokus nicht mehr auf der Zelle liegt.
Bei Kontrollkästchenzellen sollen Änderungen jedoch meist sofort behandelt werden. Um für die Änderung einen Commit auszuführen, wenn auf die Zelle geklickt wurde, muss das DataGridView.CurrentCellDirtyStateChanged-Ereignis behandelt werden. Wenn es sich bei der aktuellen Zelle um eine Kontrollkästchenzelle handelt, rufen Sie im Handler die DataGridView.CommitEdit-Methode auf, und übergeben Sie den Commit-Wert.
Zeilen im Steuerelement werden nicht automatisch sortiert, wenn ein Zellenwert geändert wird. Zum Sortieren des Steuerelements nach dem Ändern einer Zelle rufen Sie die Sort-Methode in einem CellValueChanged-Ereignishandler auf.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Im folgenden Codebeispiel wird die Verwendung des CellValueChanged-Ereignisses zum Aktualisieren der Werte in einer Bilanzspalte einer DataGridView veranschaulicht. Dieses Beispiel ist Teil eines umfangreicheren Beispiels, das im SelectionChanged-Ereignis verfügbar ist.
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(); } }
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.