Определить местоположение ячейки в DataGridView - PullRequest
17 голосов
/ 09 мая 2011

Учитывая определенный номер строки и индекс столбца, как я могу вычислить местоположение ячейки (IE: Location.Point) внутри DataGridView?

Причина, по которой мне нужно местоположение ячейки, заключается в том, что я могу расположитькнопка внутри ячейки, чтобы разрешить просмотр папок (в datagridview отображаются пути к папкам).

Альтернативные предложения о том, как выполнить это приветствие.

1 Ответ

34 голосов
/ 09 мая 2011

Вы не можете найти точку для ячейки DGV, потому что ячейки занимают прямоугольную область в DGV. Однако эту область можно найти с помощью метода DataGridView.GetCellDisplayRectangle () . Он возвращает Rectangle для области отображения ячейки DGV, заданной индексами столбца и строки ячейки. Если вы действительно хотите получить очко, вы можете легко использовать Rectangle для построения Очков для любого из четырех углов Rectangle.

// Get Rectangle for second column in second row.
var cellRectangle = dataGridView1.GetCellDisplayRectangle(1, 1, true);
// Can create Points using the Rectangle if you want.
Console.WriteLine("Top Left     x:{0}\t y:{1}", cellRectangle.Left, cellRectangle.Top);
Console.WriteLine("Bottom Right x:{0}\t y:{1}", cellRectangle.Right, cellRectangle.Bottom);

Но я согласен с комментаторами вашего вопроса; было бы лучше создать собственный DataGridViewColumn и разместить там свой TextBox и Button. Вот пример выполнения этого для элемента управления DateTimePicker:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...