1

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   
   |
  \_/

ここに画像の説明を入力

4

2 に答える 2

1

理由はわかりませんが、で呼び出すとBeginInvoke問題が解決しました。

BeginInvoke(New MethodInvoker(AdressOf SetFocusToRow))

Private sub SetFocusToRow()
{
  myUltraWinGrid.ActiveCell = myUltraWinGrid.ActiveRow.Cells("foo")
  myUltraWinGrid.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode)
}
于 2013-04-24T17:54:21.703 に答える
-1

何らかの理由で別のスレッドによって実行されているため

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

于 2015-07-30T20:58:06.360 に答える