Advertisement
Guest User

Untitled

a guest
Oct 16th, 2013
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.17 KB | None | 0 0
  1.         // размерность таблиц
  2.         private const int GRID_COLUMN_COUNT = 16;   // количество столбцов
  3.         private const int GRID_ROW_COUNT = 8;       // количество строк
  4.  
  5.         // при выделении таблицы1 необходимо очистить выделение таблицы2 и скопировать в таблицу2 выделение таблицы1;
  6.         // переменная хранит ссылку на таблицу 2, чтобы при очистке выделения делать возврат из функции grid_SelectionChanged,
  7.         // иначе таблица2 попытается очистить выделение таблицы1 и произойдет зацикливание
  8.         private DataGridView _gridForClearSelection = null;
  9.        
  10.         // обработчик на изменение выделения талицы,
  11.         // реализует одновременное изменение выделения в обеих таблицах
  12.         void grid_SelectionChanged(object sender, EventArgs e)
  13.         {
  14.             // если происходит очистка выделения таблицы, сразу выходим
  15.             if (_gridForClearSelection != null && sender.Equals(_gridForClearSelection))
  16.                 return;
  17.  
  18.             DataGridView grid1 = (DataGridView)sender;
  19.             DataGridView grid2 = grid1.Equals(dataGridView_TmciIn) ? dataGridView_TmciOut : dataGridView_TmciIn;
  20.             _gridForClearSelection = grid2; // запоминаем таблицу, в которой очищаем выделение
  21.             grid2.ClearSelection();         // очищаем выделение в таблице2
  22.             _gridForClearSelection = null;  // забываем таблицу, в которой очищали выделение
  23.  
  24.             // копируем выделение из таблицы1 в таблицу2
  25.             for (int i = 0; i < grid1.SelectedCells.Count; i++)
  26.                 grid2[grid1.SelectedCells[i].ColumnIndex, grid1.SelectedCells[i].RowIndex].Selected = true;
  27.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement