DataGridView选择器如何去到特定的记录
本文关键字:记录 选择器 何去 DataGridView | 更新日期: 2023-09-27 18:15:25
添加客户记录后,我调用一个函数,该函数在DataGridView中显示所有客户,并选择DataGridView中的第一行。
现在我想我的填充DataGridView去customerid刚才已添加。现在添加的记录是在我的DataGridView,是在列表的末尾,第一个记录已从DataGridView中选择。
private void btnAdd_Click(object sender, EventArgs e)
{
frmAddModifyCustomer addCustomerForm = new frmAddModifyCustomer();
addCustomerForm.addCustomer = true;
DialogResult result = addCustomerForm.ShowDialog();
if (result == DialogResult.OK)
{
customer = addCustomerForm.customer;
txtCustomerID.Text = customer.CustomerID.ToString();
this.DisplayCustomer();
this.AllCustomer();
}
}
private void AllCustomer()
{
DataTable dt = new DataTable();
try
{
dt = CustomerDB.AllCustomer();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, ex.GetType().ToString());
}
if (dt != null)
{
grvCustomer.Visible = true;
grvCustomer.DataSource = dt;
}
else
{
MessageBox.Show("No customer found with this ID. " +
"Please try again.", "Customer Not Found");
grvCustomer.Visible = false;
this.ClearControls();
}
}
你可以试试这个解决方案:
grvCustomer.ClearSelection();
int IndexRow = grvCustomer.Rows.Count - 1;
grvCustomer.Rows[IndexRow].Selected = true;
此代码将选择数据网格中的最后一行
和滚动到最后一行,如果有不可见的行,你可以试试:
grvCustomer.FirstDisplayedScrollingRowIndex = IndexRow;
据我所知,您希望在网格底部选择新添加的行。
如果存在,您可以清除先前的选择。将最后一行的选定属性设置为true。再次选择滚动网格的视图到网格的最后一行,以防它在可见网格的区域之外。
var lastRowIndex = this.grvCustomer.Rows.Count - 1;
this.grvCustomer.ClearSelection();
this.grvCustomer.Rows[lastRowIndex].Selected = true;
this.grvCustomer.FirstDisplayedScrollingRowIndex = lastRowIndex;
编辑:如果不知道修改的行,则必须枚举rows集合并查找客户ID列下与对话框表单的值匹配的单元格值。
foreach (DataGridViewRow row in this.grvCustomer.Rows)
{
if (row.Cells["CustomerID"].Value.ToString() == addCustomerForm.customer.CustomerID.ToString())
{
row.Selected = true;
break;
}
}