Como faço para obter a posição atual da célula xey em um DataGridView?

Eu tenho um formulário do Windows com um calendar que está oculto. Eu quero mostrar o formulário logo abaixo da célula atual de um DataGridView. A posição muda de acordo com a posição da célula atual.

Eu não quero a célula atual ou coluna atual, eu quero a posição para que eu possa definir a localização dos meus formulários de data.

Aqui está o que estou usando, mas não está funcionando:

int po_X = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Left+paygrid.Left; int po_Y = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Bottom+paygrid.Top; form_date.Location = new System.Drawing.Point(po_X, po_Y); 

Você pode usar o método paygrid.PointToScreen ().

 form_date.Location = paygrid.PointToScreen( paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location); 

Você pode querer tentar isto:

 Lookup_Account.Left = datagrid_setting.GetCellDisplayRectangle(colIndex, rowIndex, False).Left Lookup_Account.Top = datagrid_setting.GetCellDisplayRectangle(colIndex, rowIndex, False).Top 

Você pode tentar

 [DllImport("user32.dll", EntryPoint = "GetCursorPos")] private static extern bool GetCursorPos(out Point lpPoint); 

e chame o método como

 Point pt; GetCursorPos(out pt); 

pt fornecerá x e y.

 Rectangle cellRect = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); 

Então você pode usar:

 cellRect.X - for X position, cellRect.Y - for Y position, cellRect.Width - for column width and cellRect.Height - for column height