2011-09-12 25 views
0

如果在創建新行後選擇行,我已經解決了這個問題。它也滾動到它。爲另一個樂隊創建一個新行後設置超網格行?

這次,我有的問題是不同的。 它應該滾動到選定的行,但選定的行具有子行,並且應該向下滾動到所選行的最後一個子行。

我已經知道如何獲取選定的行,但不知道如何獲取它的索引。

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); 

      } 
     } 
+0

有誰知道如何? –

回答

1

您需要查找活動行的最低子部分,並強制網格將該行滾動到視圖中。根據您使用的Infragistics控件的版本,UltraGridRow.HasChild()UltraGridRow.GetChild()的某些組合將幫助您遍歷子元素,以識別所選行的最後一個子行。然後UltraGridView.ActiveScrollRegion.ScrollRowIntoView()應該強制所需的滾動。

實施就留給讀者做練習:)

一些方法名跨越的Infragistics的版本已經改變控制的套房,但這些或類似的方法應該仍然存在。

相關問題