SHOW:
|
|
- or go back to the newest paste.
1 | // размерность таблиц | |
2 | private const int GRID_COLUMN_COUNT = 16; // количество столбцов | |
3 | private const int GRID_ROW_COUNT = 8; // количество строк | |
4 | ||
5 | - | // при выделении таблицы1 необходимо очистить выделение таблицы2 и скопировать в таблицу2 выделение таблицы1; |
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 | } |