アプリのサイズが変更された場合でも、常にデータグリッド上で、より正確にはデータグリッドの中央上で開く必要があるダイアログがあります。MDIアプリです。私が現在使用しているコードは次のとおりです。
var dialog = new Dialog();
var location = myGrid.PointToScreen(Point.Empty);
dialog.Left = location.X + (myGrid.Width / 2) - (dialog.Width / 2);
dialog.Top = location.Y + (myGrid.Height / 2) - (dialog.Height / 2);
MDI が最大化されている場合にのみ機能します。サイズを変更すると、ダイアログの位置が完全に間違っています。