[英]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
并且MultiSelect
为false
。
有人知道为什么这行不通吗? 弹出表格时始终始终选择第一行。
这个问题从茎中的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.