如何使用Datagrid.SelectedItem
以编程方式选择行?
我首先要创建一个IEnumerable
的DataGridRow
对象和匹配的行传递给此SelectedItem
属性或我该怎么办呢?
编辑:
TextBox.Text
在选择行之前,我需要将第一列单元格的单元格内容与第一列匹配.
我希望用户能够在DataGridView(dgv)的列中搜索数字.dgv可以保存很多记录.每条记录都有一个项目编号.所以我希望用户能够在项目编号列中搜索项目编号.我的列是:ProjectID(不可见); 图像(无headertext); 项目编号; 项目名; 公司; 联系.
这是我的代码:
private void btnSearch_Click(object sender, EventArgs e)
{
string searchValue = textBox1.Text;
int rowIndex = -1;
dgvProjects.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
try
{
foreach (DataGridViewRow row in dgvProjects.Rows)
{
if (row.Cells[row.Index].Value.ToString().Equals(searchValue))
{
rowIndex = row.Index;
dgvProjects.Rows[row.Index].Selected = true;
break;
}
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
问题#1:到目前为止它做了什么:用户在TextBox1中键入项目编号.当他/她单击按钮时,代码会在行中搜索此字符串,当找到项目编号时,该行将被选中.它工作正常,但只有一次.当我想搜索其他项目编号时,没有任何反应.
问题2:我认为这可以通过仅搜索列项目名称的值以更好的方式完成.但是我该如何正确地做到这一点?
我用来搜索的代码来自这个答案