int rowIndex = 1;
int columnIndex = 1;
int X = 0, Y = 0;
if (dataGridView.RowHeadersVisible) X += dataGridView.RowHeadersWidth;
for (int i = dataGridView.FirstDisplayedScrollingColumnIndex; i < ColumnIndex; i++)
{
if (dataGridView.Columns[i].Visible) X += dataGridView.Columns[i].Width + dataGridView.Columns[i].DividerWidth;
}
X -= dataGridView.FirstDisplayedScrollingColumnHiddenWidth;
if (dataGridView.ColumnHeadersVisible) Y += dataGridView.ColumnHeadersHeight;
for (int i = dataGridView.FirstDisplayedScrollingRowIndex; i < RowIndex; i++)
{
if (dataGridView.Rows[i].Visible) Y += dataGridView.Rows[i].Height + dataGridView.Rows[i].DividerHeight;
}