Advertisement
Guest User

Untitled

a guest
Oct 16th, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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