【问题标题】:C# Winforms: Inserting an item to datagridview's top moves scroll downC# Winforms:将项目插入到 datagridview 的顶部会向下滚动
【发布时间】:2017-12-21 06:51:42
【问题描述】:

我有一个 datagridview 通过 datagridview 的 datasource 属性绑定到一个数据表。使用下面的代码行,一行一行地添加,并且始终位于 datagridview 的顶部,例如:

DataRow newRow = myDataTable.NewRow();
newRow[0] = "column1 value";
newRow[1] = "column2 value";
myDataTable.Rows.InsertAt(newRow, 0);

问题是 datagridview 垂直滚动向下移动,使得在 datagridview 顶部添加的最后一行不可见,所以我不希望垂直滚动向下移动以使插入到顶部的最后一行可见。

我该怎么做?

尝试 1

DataGridViewRow selectedRow = null;
if (dataGridView1.SelectedRows.Count > 0)
   selectedRow = dataGridView1.SelectedRows[0];

DataRow newRow = myDataTable.NewRow();
newRow[0] = "column1 value";
newRow[1] = "column2 value";
myDataTable.Rows.InsertAt(newRow, 0);

if (selectedRow != null)
   dataGridView1.FirstDisplayedScrollingRowIndex = selectedRow.Index;
else
   dataGridView1.FirstDisplayedScrollingRowIndex = 0;

提取自here

好像不行。 dataGridView1.FirstDisplayedScrollingRowIndex 始终为 0,但 datagridview 继续向下滚动。

【问题讨论】:

    标签: c# winforms datagridview datatable


    【解决方案1】:

    您只需在每次添加新行时滚动到 DataGridView 的顶部。 您可以通过设置属性FirstDisplayedScrollingRowIndex 来做到这一点 到索引为 0 的第一行:

    dataGridView.FirstDisplayedScrollingRowIndex = 0;
    

    【讨论】:

    • 所选行怎么样?有吗?
    • 不,从来没有。没有选择任何行。 dataGridView1.SelectedRows.Count 始终为 0。
    【解决方案2】:

    如果您直接使用 datagridview,FirstDisplayedScrollingRowIndex 将起作用。

    例如:

    Form1.cs

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
    
            dataGridView1.Columns.Add("firstColumn", "Name");
            dataGridView1.Columns.Add("secondColumn", "Mark");
            dataGridView1.Rows.Add(99);
    
            for (int i = 99; i >= 0; i--)
            {
                dataGridView1[0, i].Value = "column1 value " + (100 - i);
                dataGridView1[1, i].Value = "column2 value " + (100 - i);
            }
    
            dataGridView1.FirstDisplayedScrollingRowIndex = 0;
        }
    }
    

    结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2016-05-24
      • 2013-04-22
      相关资源
      最近更新 更多