私はWindowsフォーム上にdatagridviewsを持っています。小さなダイアログを使用してdatagridviewにレコードを追加しています。読み込まれます。 http://www.c-sharpcorner.com/UploadFile/kirtan007/761/ウィンドウをアニメーション化している間にフォームが間違った場所に表示される
ダイアログがでアニメーションが、画面の左上にされています。私は
[DllImport("user32")]
static extern bool AnimateWindow(IntPtr hwnd, int time, int flags);
ソースを使用しています。別のフォーム私は午前中にフォームを追加
//Set the Location negative values are being returned when my dialog appears this.Location = new Point(LocationMainX + WidthOfMain, locationMainy + 10); //Animate form AnimateWindow(this.Handle, 750, AW_SLIDE | AW_HOR_POSITIVE);
私は子供にその場所を渡しています親フォームで
AddForm form = new AddForm (this.DesktopLocation) form.ShowDialog(); //I have also noticed doing form.Show(); messes with the position of dialog
私のメインフォームの負荷を:私は、[追加]ダイアログのLoadイベントにbelowcodeを使用しています相対的な位置を返すと推測します。しかし私は試みました:
AddForm form = new AddForm (this.Parent.DesktopLocation) form.ShowDialog();
これは否定的な値を返しますが、(0,24)も正しくありません。ダイアログが親フォームの約150ピクセル上にアニメーション表示されるためです。私は、フォームの相対を設定
があまりにもthis.Parent.Parent.Locationが、それは、右表示され、はので、私は推測するアプリケーションのルート親にアクセスするのではなくthis.parent.parentを行うための正式な方法があります。 ....
フォームが「間違った場所にある」ということについて具体的に説明できますか?それはあまりにも高いか低いか、あまりにも左か右かランダムか。それはどこにあるべきですか? – ChrisF
「画面の左上」という質問が更新されました – PUG
親ウィンドウからの相対的な数字ですか?おそらく、 'LocationMainX'と' locationMainy'をおそらく離しますか? – ChrisF