2

私はデータ入力フォームに取り組んでいます。保存ボタンをクリックすると、フォームのデータがデータベースに保存されます。またDataGridview、データベースから入力する必要があります。

私の質問は、その行から任意の行を選択すると、DataGridviewその行が選択済みとして表示されるということです。主キーデータに基づいて、データ入力フォームのすべてのフィールドに入力されます。

そのためにどのイベントを使用できますか?誰かが何か提案をすることができますか?

4

4 に答える 4

1

これを行う最も簡単な方法は、バインディングソースとデータバインディングを使用することです。

したがって、フォームにバインディングソースを追加し、これをデータソースにして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);
}
于 2012-08-14T12:21:05.510 に答える
0

行を選択すると、SelectedIndexChangingが呼び出されます

行が選択されると、SelectedIndexChangedが呼び出されます

グリッドビューを埋めるには、RowDataBoundを使用する必要があります

完全なリストについては、次のmsdnリンクを 参照してくださいhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview_events.aspx

于 2012-08-13T13:22:50.307 に答える
0

できるよ

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
}
于 2012-08-13T13:20:12.060 に答える
0

使用してみてください:

GridView.RowCommand Event

詳細については、GridView.RowCommandイベントを参照してください。

于 2012-08-13T13:22:20.447 に答える