繁体   English   中英

DataGridView未选择加载的最后一行

[英]DataGridView not selecting last row on load

我有一个DataGridView作为表单的一部分,当填充其所有行时,默认情况下应选择最后一行。

public MyForm()
{
    InitializeComponent();
    Reload();
}

private void Reload()
{
    // add/populate the rows here

    if(dgv.Rows.Count > 0)
    {
        dgv.Rows[dgv.Rows.Count - 1].Selected = true;
    }
}

我将SelectionMode设置为FullRowSelect并且MultiSelectfalse

有人知道为什么这行不通吗? 弹出表格时始终始终选择第一行。

这个问题从茎中的Windows窗体事件的顺序加载时Form 如果在Form的构造函数中调用Reload() ,则窗体控件实际上还没有加载的机会。 它们的实例存在,但渲染的对象不存在。

相反,您应该覆盖其他表单加载事件之一,例如OnLoad然后从那里调用Reload() 从构造函数中删除对Reload()的调用。

public MyForm()
{
    InitializeComponent();
}

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    Reload();
}

private void Reload()
{
    // add/populate the rows here
    if(dgv.Rows.Count > 0)
    {
        dgv.Rows[dgv.Rows.Count - 1].Selected = true;
    }
}

使用此方法将确保控件在开始操作之前已完成加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM