2013-07-19 2 views
2

그리드에서 동일한 열에서만 여러 셀을 선택해야합니다. 사용자가 차이 열에서 셀을 선택할 수 없도록해야합니다.UltraWinGrid를 사용하여 같은 열에서 여러 셀을 선택하십시오.

아래 코드를 시도했습니다.

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 

위의 코드는 차이 열에서 선택 셀을 허용합니다. 내가 어디가 잘못 됐는지 말해?

답변

2

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; 
     } 
    } 
+0

감사합니다. – Karthik