刚刚张贴之前,需要澄清的一个财产。(请注意,我知道这个问题与其他问题相似,因此我试图从别处寻找解决方案,但找不到适合这种情况的确切答案)。
我对编程非常陌生,不知道如何将DataGridView滚动到用户选择的行。我尝试使用FirstDisplayedScrollingRowIndex,但得到了以下错误:
错误:无法隐式地将类型“System.Windows.Forms.DataGridViewRow”转换为“int”
当我试图将用户选定的行带到datagridview的顶部时,就会发生这样的情况:
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows[i]以下是完整的代码:
String searchVal = textBox1.Text;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
if (dataGridView1.Rows[i].Cells[0].Value != null && dataGridView1.Rows[i].Cells[0].Value.ToString().Contains(searchVal))
{
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows[i];
dataGridView1.Update();
}
}发布于 2013-12-03 16:48:28
根据文档,FirstDisplayedScrollingRowIndex
获取或设置显示在DataGridView上的第一行的行的索引。
您已经将索引存储在i中..。试着用它:
dataGridView1.FirstDisplayedScrollingRowIndex = i;为了解决您在评论中的第二个问题,下面是如何找到第一个完全匹配的(如果有的话):
var selectedRow = dataGridView1.Rows.Cast<DataGridViewRow>()
.FirstOrDefault(x => Convert.ToString(x.Cells[0].Value) == searchVal);
if (selectedRow != null)
{
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows[i];
dataGridView1.Update();
}https://stackoverflow.com/questions/20356809
复制相似问题