auto9817 Ответов: 1

Альтернатива методу datagridview - getcelldisplayrectangle


Мне нужно получить координаты x и y границы прямоугольника двух ячеек. В данный момент я использую
GetCellDisplayRectangle
метод внутри
dataGridView1_Paint(object sender, PaintEventArgs e)
событие.

Проблема в том, что я получаю 0 для значений x и y, если ячейки не видны на экране.

Каков был бы альтернативный метод получения координат x и y двух ячеек, даже если эти ячейки не видны на экране ?

Что я уже пробовал:

Rectangle cell_1 = dataGridView1.GetCellDisplayRectangle(column1, row1, false);
Rectangle cell_2 = dataGridView1.GetCellDisplayRectangle(column2, row2, false);

int x1 = cell_1.Right;
int y1 = (cell_1.Top + cell_1.Bottom) / 2;

int x2 = cell_2.Right;
int y2 = (cell_2.Top + cell_2.Bottom) / 2;

1 Ответов

Рейтинг:
2

Richard MacCutchan

Если сетка не видна на экране,то ничто не будет иметь значений x, Y. Положение и размеры устанавливаются только тогда, когда элемент управления нарисован на экране.