2016-05-04 29 views

答えて

1

あり、より良い方法であることが、ここで一つのアプローチだかもしれません:

public partial class Form1 : Form 
{ 
    private Int32 _colIdxToSkip = 4; //Remember, there's an extra column if "Row Headers" are turned on! 
    private Keys _lastKeys = Keys.None; 

    public Form1() 
    { 
     InitializeComponent(); 
     flexGrid.KeyActionTab = C1.Win.C1FlexGrid.KeyActionEnum.MoveAcross; 
    } 

    private void flexGrid_BeforeRowColChange(Object sender, C1.Win.C1FlexGrid.RangeEventArgs e) 
    { 
     if (_lastKeys == Keys.Tab && e.OldRange.r1 == e.NewRange.r1 && e.NewRange.c1 == _colIdxToSkip) 
     { 
      if (_colIdxToSkip == flexGrid.Cols.Count - 1) 
      { 
       flexGrid.Row = (flexGrid.Row == flexGrid.Rows.Count - 1 ? flexGrid.Rows.Fixed : flexGrid.Row + 1); 
       flexGrid.Col = flexGrid.Cols.Fixed; 
      } 
      else 
       flexGrid.Col = _colIdxToSkip + 1; 
      e.Cancel = true; 
     } 
    } 

    private void flexGrid_KeyDown(Object sender, KeyEventArgs e) 
    { 
     _lastKeys = e.KeyCode; 
    } 
} 
関連する問題