void SetDialogLocationAtPoint(Form TheDialog, IPoint ThePoint)
        {
            int iX = 0; int iY = 0;
            int iX2 = 0; int iY2 = 0;
            IDisplayTransformation pDispTr = ArcMap.Document.ActiveView.ScreenDisplay.DisplayTransformation;

            pDispTr.FromMapPoint(ThePoint, out iX, out iY);

            IntPtr hWnd = (IntPtr)ArcMap.Document.ActiveView.ScreenDisplay.hWnd;

            NativeMethods.RECT rect        = new NativeMethods.RECT();
            if (NativeMethods.GetWindowRect(hWnd, ref rect))
            {
                iX2 = rect.Left;
                iY2 = rect.Top;
            }
            int iLeft = iX + iX2 - (TheDialog.Width / 2);
            int iTop  = iY + iY2 - (TheDialog.Height / 2);

            TheDialog.StartPosition = FormStartPosition.Manual;
            TheDialog.Location      = new System.Drawing.Point(iLeft, iTop);
        }