0

VB.NETクラスにデータグリッドがあります。セルは編集可能です。各セルが編集されたときに関数をトリガーする方法はありますか?

4

2 に答える 2

3

はい、CellValueChangedイベント:http: //msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellvaluechanged.aspx

    Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
       'do something
    End Sub

あなたのコメントによるとEDIt:はい、BeginEditのクラスレベル変数に現在の値を保存し、CellValueChangedイベントでそれを取得することができます:

Private cellValue As String = String.Empty

Private Sub DataGridView1_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.CellBeginEdit
    cellValue = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString
End Sub

Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
    MessageBox.Show("row index: " & e.RowIndex & Environment.NewLine & "old value: " & cellValue)
End Sub
于 2012-12-10T14:43:50.153 に答える
1

しかし、CellValueChanged イベントは、入力が完了していなくても、キーダウン アクションごとにメッセージを返します。この事実はいらいらさせられます。

于 2013-04-29T10:15:56.390 に答える