5

.NET / Formsアプリには、DataTableにバインドされたDataGridViewがあります。ユーザーはダブルクリックしてDataGridViewの行を選択し、アプリを操作します。その後、行の内容がプログラムで更新されます。

ユーザーが新しい行を選択すると、前の行の変更がフレームワークによって自動的にDataTableに伝達されます。ユーザーが新しい行を選択する必要がないように、コードからこの更新をトリガーするにはどうすればよいですか?

4

3 に答える 3

4

私はちょうど同じ問題を抱えていて、ここで答えを見つけました:

ユーザーが行から移動すると、コントロールはすべての行の変更をコミットします。ユーザーは、CTRL + ENTER を押して、行を離れずに行の変更をコミットすることもできます。行の変更をプログラムでコミットするには、フォームの Validate メソッドを呼び出します。データ ソースが BindingSource の場合は、BindingSource.EndEdit を呼び出すこともできます。

Validate() を呼び出すとうまくいきました。

于 2008-09-17T00:04:09.050 に答える
0

これを明確にするプロセスは次のとおりです。

  1. ユーザーが行をダブルクリック
  2. アプリはデータベースからデータを取得し、取得したデータを処理し、DataGridView と同じフォームにコントロールを入力します
  3. ユーザーはコントロールを操作し、最後に同じフォームの適用ボタンを押します
  4. アプリはコントロールの状態を処理し、データを db に書き込み、データを DataGridView に書き込みます

  5. IF ユーザーが DataGridView で選択を移動する

  6. THEN 変更はバインドされた DataTable に反映されます

コードから DataGridView を変更した後、すぐに 6 をトリガーしたいと思います。

于 2008-09-16T16:24:19.517 に答える
0

更新が行われるトリガーに依存すると思います。検証ルーチンにある場合は、ユーザーがデータの編集で [OK] をクリックした後に呼び出すことができます。あなたの質問は漠然としています。より多くの情報があれば答えやすいでしょう。この相互作用は何ですか?ダイアログですか?実際にデータを更新するのは何ですか?

于 2008-09-16T14:54:49.170 に答える