我正在处理数据输入表单。当我单击保存按钮时,我希望将表单中的数据保存到数据库中。我还想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 被调用
when a row is selected SelectedIndexChanged is called
要填充 gridview,您必须使用 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();
}
或者使用row enter事件获取当前行
private void dataGridView1_RowEnter(object sender,
DataGridViewCellEventArgs e)
{
//e.RowIndex to get the index of the row
}