在为另一个乐队创建新行后设置选择的超网格行?

Posted

技术标签:

【中文标题】在为另一个乐队创建新行后设置选择的超网格行?【英文标题】:Set ultragrid row selected after creating a new row for another band? 【发布时间】:2011-09-12 13:30:20 【问题描述】:

如果在创建新行后选择行,我已经解决了这个问题。它还会向下滚动到它。

这一次,我遇到的问题不同了。 它应该滚动到所选行,但所选行有子行,它应该向下滚动到所选行的最后一个子行。

我已经知道如何获取所选行,但不知道如何获取它的索引。

private void SplitUnit(Boolean editSplittedRow)
        
            UC011_WizardStepUnitDataSet.UnitRow unitRow;

            if (editSplittedRow)
            
                unitRow = (ultraGridOverview.ActiveRow.ParentRow.ListObject as DataRowView).Row as UC011_WizardStepUnitDataSet.UnitRow;
            
            else
            
                unitRow = (ultraGridOverview.ActiveRow.ListObject as DataRowView).Row as UC011_WizardStepUnitDataSet.UnitRow;
            

            DialogResult dr = new DialogResult();
            FormSplitUnit form = new FormSplitUnit();

            form.ParentRow = unitRow;
            form.UnitDataSet = _uc011_WizardStepUnitDataSet;

            dr = form.ShowDialog();

            if (dr == DialogResult.Yes)
            
                // Get splitted units from form
                UC011_WizardStepUnitDataSet dataSet = form.GetDataSet();

                // Obsolete ?
                //_uc011_WizardStepUnitDataSet.Unit.Merge(dataSet.Unit, true, MissingSchemaAction.Ignore);

                // Update modified or add new units
                UpdateSplittedUnitList(dataSet);

                // Reset data to grid
                //SetUltraGridData();

                // Update summary data
                SetSummaryDataSet();
                ultraGridOverview.Rows[unitRow].Selected = true;
                ultraGridOverview.Rows[_uc011_WizardStepUnitDataSet.Unit.Count - 1].Activate();
                ultraGridOverview.PerformAction(UltraGridAction.LastRowInGrid);

            
        

【问题讨论】:

【参考方案1】:

您需要找到活动行的最低子级并强制网格将该行滚动到视图中。根据您使用的 Infragistics 控件的版本,UltraGridRow.HasChild()UltraGridRow.GetChild() 的某些组合将帮助您遍历子项以识别所选行的最后一个子行。然后UltraGridView.ActiveScrollRegion.ScrollRowIntoView() 应该强制进行所需的滚动。

实现留给读者作为练习:)

一些方法名称在 Infragistics 控件套件的各个版本之间发生了变化,但这些或类似的方法应该仍然存在。

【讨论】:

以上是关于在为另一个乐队创建新行后设置选择的超网格行?的主要内容,如果未能解决你的问题,请参考以下文章

当我选择最后一行时,为什么在MSFlexGrid中选择所有行?

创建新行时的剑道网格,使用现有行中的值自动填充字段

网格搜索 SVM-anova 的超参数并在 Sklearn 中获得选择的特征

Oracle APEX交互式网格新行不可编辑

C#选择并滚动到DataGridView中选择的行

如何仅取消选择网格中的某些行?