- PR -

フォームの表示位置(C# Winフォーム)

投稿者投稿内容
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-01-19 17:35
いつもお世話になっております。

MDIの子フォームを親フォームの中央に表示させたいです。
その為にプロパティー(startposition)をCenterParentに設定しているのですが中央に表示さず何画面も開くと「重ねて表示」をしたようになってしまいます。なぜでしょうか?
ご教授お願いします。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-01-19 17:54
どこかで LayoutMdi を呼んでいるとか、ないですか?
_________________
囚人のジレンマな日々
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-01-19 18:03
LayoutMdiは呼んで無いです。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-01-19 18:12
引用:

MDIの子フォームを親フォームの中央に表示させたいです。
その為にプロパティー(startposition)をCenterParentに設定しているのですが中央に表示せず何画面も開くと「重ねて表示」をしたようになってしまいます。なぜでしょうか?


現象確認しました。
Manualは正常に動作するようです。
なので、、、と思いましたが、MDIClient内での座標を求める必要がありますね。
親フォームのスクリーン座標から中央のスクリーン座標を求めて、MDIClientのクライアント座標へ変換する
という具合ですかね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-19 18:16
引用:

トトロさんの書き込み (2006-01-19 17:35) より:

MDIの子フォームを親フォームの中央に表示させたいです。
その為にプロパティー(startposition)をCenterParentに設定しているのですが中央に表示さず何画面も開くと「重ねて表示」をしたようになってしまいます。


Windows の仕様だと思いますけど...
MDI に限らないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-01-19 18:23
引用:

Manualは正常に動作するようです。
なので、、、と思いましたが、MDIClient内での座標を求める必要がありますね。
親フォームのスクリーン座標から中央のスクリーン座標を求めて、MDIClientのクライアント座標へ変換する
という具合ですかね。



ありがとうございます。
上記の方法で試してみます。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-01-19 18:23
引用:

Windows の仕様だと思いますけど...
MDI に限らないと思います。


#StartupPosition=CenterParentのお話ですが。。。

ヘルプにはできると明記されてるんですがね。。。
Manualは動くみたいです。
nanbu
大ベテラン
会議室デビュー日: 2004/08/19
投稿数: 178
投稿日時: 2006-01-19 21:17
南部です。

CenterScreen...

スキルアップ/キャリアアップ(JOB@IT)