UltraWinGrid进入编辑模式问题

问题描述:

我有一个UltraWinGrid,我想将焦点放到特定的单元格并使其以编程方式进入编辑模式(没有点击)。所以我这样做:UltraWinGrid进入编辑模式问题

If myUltraWinGrid.ActiveRow IsNot Nothing Then 
myUltraWinGrid.ActiveCell = myUltraWinGrid.ActiveRow.Cells("foo") 
myUltraWinGrid.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode) 
Else 
myUltraWinGrid.ActiveCell = myUltraWinGrid.Rows(0).Cells("foo") 
myUltraWinGrid.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode) 
EndIf 

这应该工作,但它只是将焦点聚集到行(不编辑模式)。

fooColumn 
    | 
    \_/ 

enter image description here

我不知道为什么,但与BeginInvoke调用它解决了这个问题。

BeginInvoke(New MethodInvoker(AdressOf SetFocusToRow)) 

Private sub SetFocusToRow() 
{ 
    myUltraWinGrid.ActiveCell = myUltraWinGrid.ActiveRow.Cells("foo") 
    myUltraWinGrid.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode) 
} 
+0

也许没有从主UI线程调用进入编辑模式的代码? – 2013-05-30 13:10:58

+0

@JeffBridgman也许吧。我不擅长线程。但它是有道理的。 – phadaphunk 2013-05-30 13:12:14

因为它是由另一个线程执行由某种原因

myUltraWinGrid.BeginInvoke(新MethodInvoker(()=> myUltraWinGrid.PerformAction(UltraGridAction.EnterEditMode)));

+0

这是phadaphunk的答案评论,而不是答案本身。 – Phil 2015-07-30 21:21:47