2

InfragisticsUltraWinGridv9.1を使用しています。ユーザーがセルに数値データを入力できるようにし、Enterキーを押してから、Excelで表示されるように、下のセルにフォーカスを合わせます。この場合、KeyUpイベントはKeyPressedイベントよりも優れているようですが、フルグリッドの先頭から開始しても、UltraWinGridの境界を超えたという例外をスローし続けます。これが私が試したコードです:

    private void ugrid_KeyUp(object sender, KeyEventArgs e)
    {
        UltraGrid grid = (UltraGrid)sender;

        if (e.KeyCode == Keys.Enter)
        {
            // Go down one row
            UltraGridCell cell = grid.ActiveCell;
            int currentRow = grid.ActiveRow.Index;
            int col = cell.Column.Index;
            grid.Rows[currentRow + 1].Cells[grid.ActiveCell].Activate();
        }
    }

これにより、同じ列のセルが1行下になり、grid.Rows [currentRow + 1] .Cells [grid.ActiveCell] .Activate();という呼び出しでアクティブセルになると予想しました。

代わりに、例外がスローされます。

タイプ'System.IndexOutOfRangeException'の例外がInfragistics2.Shared.v9.1.dllで発生しましたが、ユーザーコードでは処理されませんでした。追加情報:インデックスが配列の範囲外でした。

私は行0にいて、行1が存在するので、これは私にとって驚きです。currentRowとcolの値は、それぞれ0と28です。より良いアプローチは何でしょうか?ところで、これを下のセルで再度実行できます。値はcurrentRow=1およびcol=28です。同じ例外がスローされます。

4

4 に答える 4

6

誰かがインフラジスティックスフォーラムで私の質問に答えました...

    private void ugrid_KeyUp(object sender, KeyEventArgs e)
    {
        var grid = (UltraGrid)sender;

        if (e.KeyCode == Keys.Enter)
        {
            // Go down one row
            grid.PerformAction(UltraGridAction.BelowCell);
        }
    }
于 2010-02-15T16:25:34.613 に答える
2

私が言っていることがv9.1にも有効かどうかはわかりませんが、次のようなこともできます。

yourGrid.KeyActionMappings.Add(new GridKeyActionMapping(Keys.Enter, UltraGridAction.BelowCell, 0, UltraGridState.Row, SpecialKeys.All, 0));
于 2012-02-20T16:29:28.713 に答える
1
 private void ulGrvProducts_KeyUp(object sender, KeyEventArgs e)
        {

            UltraGrid grid =  (UltraGrid)sender;

            if (e.KeyCode == Keys.Enter)
            {
                 //Go down one row
                grid.PerformAction(UltraGridAction.BelowCell);
            }
        }
于 2012-11-22T17:44:57.597 に答える
0

を使用するgrid.PerformAction(UltraGridAction.BelowCell)と、アクティブな行が変更されますが、次のセルは編集モードではありません。

于 2013-04-18T11:29:46.087 に答える