如何在C#中调整表单大小后重置焦点到超网格单元格

时间:2015-05-14 06:04:35

标签: c# cell infragistics ultragrid

我有一个ultragrid,我正在根据no动态调整表单大小。用户在其上应用过滤器时的行数。 我想在表单调整大小后重置焦点在超网格单元格上。 我在ultraGrid1_AfterRowFilterChanged事件中尝试过它。

UltraGridCell aCell = this.ultraGrid1.ActiveRow.Cells["CompanyName"];
this.ultraGrid1.ActiveCell = aCell;
this.ultraGrid1.Focus();
this.ultraGrid1.PerformAction(UltraGridAction.EnterEditMode, false, false);

但它不起作用。

我想要任何替代解决方案。

1 个答案:

答案 0 :(得分:0)

当网格过滤掉行时,活动行不会更改。因此,如果活动行被过滤掉,我假设你的代码不会做任何事情。要选择第一个未过滤的行,您可以在AfterRowFlterChanged事件中使用这样的代码:

var notFilteredOutRow = this.ultraGrid1.Rows.FirstOrDefault(r => !r.IsFilteredOut);
if (notFilteredOutRow != null)
{
    this.ultraGrid1.ActiveCell = notFilteredOutRow.Cells[0];
    this.ultraGrid1.Focus();
    this.ultraGrid1.PerformAction(UltraGridAction.EnterEditMode, false, false);
}