2

グリッドでは、同じ列でのみ複数のセルを選択する必要があります。ユーザーが異なる列からセルを選択できるようにすべきではありません。

以下のコードを試しました。

  Private Sub grdTransactions_InitializeLayout(ByVal sender As Object, _ 
    ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) _ 
    Handles grdTransactions.InitializeLayout
         e.Layout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.CellSelect
  End Sub

  Private Sub grdTransactions_AfterSelectChange(sender As Object, _ 
     e As AfterSelectChangeEventArgs) Handles grdTransactions.AfterSelectChange

        Me.grdTransactions.DisplayLayout.Override.SelectTypeCell = UltraWinGrid.SelectType.Single
        Me.grdTransactions.DisplayLayout.Override.SelectTypeCol = UltraWinGrid.SelectType.Single

        Me.grdTransactions.DisplayLayout.Bands(0).Override.SelectTypeCell = UltraWinGrid.SelectType.Extended
        Me.grdTransactions.DisplayLayout.Bands(0).Override.SelectTypeCol = UltraWinGrid.SelectType.Single

       Me.grdTransactions.DisplayLayout.Bands(0).Override.MultiCellSelectionMode = MultiCellSelectionMode.Default

      Me.grdTransactions.DisplayLayout.Bands(0).Override.MaxSelectedCells = 100

  End Sub

上記のコードでは、異なる列からセルを選択できます。どこが間違っているか教えてください。

4

1 に答える 1

2

このタスクを解決する 1 つの可能なアプローチは、ultraGrid1_BeforeSelectChange() イベントを使用している場合です。例えば:

 private void ultraGrid1_BeforeSelectChange(object sender, Infragistics.Win.UltraWinGrid.BeforeSelectChangeEventArgs e)
    {
        if (e.NewSelections.Cells.OfType<UltraGridCell>().First().Column.Key != e.NewSelections.Cells.OfType<UltraGridCell>().Last().Column.Key)
        {
            e.Cancel = true;
        }
    }
于 2013-07-31T11:44:49.993 に答える