首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >澄清如何使用FirstDisplayedScrollingRowIndex

澄清如何使用FirstDisplayedScrollingRowIndex
EN

Stack Overflow用户
提问于 2013-12-03 16:43:43
回答 2查看 9.4K关注 0票数 5

刚刚张贴之前,需要澄清的一个财产。(请注意,我知道这个问题与其他问题相似,因此我试图从别处寻找解决方案,但找不到适合这种情况的确切答案)。

我对编程非常陌生,不知道如何将DataGridView滚动到用户选择的行。我尝试使用FirstDisplayedScrollingRowIndex,但得到了以下错误:

错误:无法隐式地将类型“System.Windows.Forms.DataGridViewRow”转换为“int”

当我试图将用户选定的行带到datagridview的顶部时,就会发生这样的情况:

代码语言:javascript
运行
复制
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows[i]

以下是完整的代码:

代码语言:javascript
运行
复制
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();
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 16:48:28

根据文档,FirstDisplayedScrollingRowIndex

获取或设置显示在DataGridView上的第一行的行的索引。

您已经将索引存储在i中..。试着用它:

代码语言:javascript
运行
复制
dataGridView1.FirstDisplayedScrollingRowIndex = i;

为了解决您在评论中的第二个问题,下面是如何找到第一个完全匹配的(如果有的话):

代码语言:javascript
运行
复制
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();
}
票数 4
EN

Stack Overflow用户

发布于 2013-12-03 16:47:38

只需使用i而不是dataGridView1.Rows[i]

代码语言:javascript
运行
复制
dataGridView1.FirstDisplayedScrollingRowIndex = i;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20356809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档