私はデータ入力フォームに取り組んでいます。保存ボタンをクリックすると、フォームのデータがデータベースに保存されます。またDataGridview
、データベースから入力する必要があります。
私の質問は、その行から任意の行を選択すると、DataGridview
その行が選択済みとして表示されるということです。主キーデータに基づいて、データ入力フォームのすべてのフィールドに入力されます。
そのためにどのイベントを使用できますか?誰かが何か提案をすることができますか?
私はデータ入力フォームに取り組んでいます。保存ボタンをクリックすると、フォームのデータがデータベースに保存されます。またDataGridview
、データベースから入力する必要があります。
私の質問は、その行から任意の行を選択すると、DataGridview
その行が選択済みとして表示されるということです。主キーデータに基づいて、データ入力フォームのすべてのフィールドに入力されます。
そのためにどのイベントを使用できますか?誰かが何か提案をすることができますか?
これを行う最も簡単な方法は、バインディングソースとデータバインディングを使用することです。
したがって、フォームにバインディングソースを追加し、これをデータソースにしてDataGridView
から、データ入力フィールドへのデータバインディングを設定します(ここでは、単一のテキストボックスにバインドします)。
// Load your data into a data source - for the example just imagine a data table called dt
bindingSource1.DataSource = dt;
dataGridView1.DataSource = bindingSource1;
// Now we set up a databinding to a text box, to an example property LastName
textBox1.DataBindings.Add(new Binding("Text", bindingSource1, "LastName", false,
DataSourceUpdateMode.OnPropertyChanged));
このバインディングは自動的に双方向であり、グリッドからアイテムを選択すると機能します。選択した各アイテムの名前が表示されます。
双方向バインディングを少しスッキリさせるには(グリッドに入るまで遅れることがあります)、テキストボックスのLostFocusイベントで次の操作を行うことができます。
void textBox1_LostFocus(object sender, EventArgs e)
{
bindingSource1.ResetBindings(false);
}
行を選択すると、SelectedIndexChangingが呼び出されます
行が選択されると、SelectedIndexChangedが呼び出されます
グリッドビューを埋めるには、RowDataBoundを使用する必要があります
完全なリストについては、次のmsdnリンクを 参照してくださいhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview_events.aspx
できるよ
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
textBox1.Text = dataGridView1.CurrentRow[e.RowIndex].ToString();
}
または、行入力イベントを使用して現在の行を取得します
private void dataGridView1_RowEnter(object sender,
DataGridViewCellEventArgs e)
{
//e.RowIndex to get the index of the row
}