2017-11-08 7 views
0

私はこの回答を見つけるために午前中にグーグルとビンビングしています。Enter(DataGridView)を押さずにテーブルをキャプチャする

文字列ビルダーを使用してSQLデータベースにバインドされたDataGridViewがあります。ユーザーがデータベースに新しい変更をコミットするためにクリックするフォームに更新ボタンがあります。ただし、データテーブルに新しい変更があることをDataGridviewに通知するイベントをアクティブにするために、「Enter」キーを押すことを忘れることもあります。 変更を識別するためにEnterキーを押す必要がない方法はありますか?おそらくcellvalidatingイベントですか?

+0

「CellValidating」イベントが機能する可能性があります。 'CellValueChanged'イベントもあります。 – braX

+0

私はこれらのイベントを他の機能に使用しています。テーブルに新しい変更があることを伝えるために必要な特別なコード行がありますか? – user3753620

+0

保存ルーチンを呼び出して、変更したい場合は 'CellValidated'イベントに変更を保存することもできます。 – braX

答えて

0

(Enterを押す前に)入力文字列を取得できます。

public Form1() 
    { 
     InitializeComponent(); 

     dgv.Columns.Add(new DataGridViewTextBoxColumn()); 

     dgv.Rows.Add("text"); 

     dgv.EditingControlShowing += (sender, args) => 
            { 
             Debug.Print(((DataGridView)sender).CurrentRow.Index.ToString()); 

             dgv.EditingControl.TextChanged -= EditingControlOnTextChanged; 

             dgv.EditingControl.TextChanged += EditingControlOnTextChanged; 
            }; 
    } 

    private void EditingControlOnTextChanged(object sender, EventArgs eventArgs) 
    { 
     Debug.Print(((TextBox) sender).Text); 
    } 
関連する問題