- PR -

[C#]常にタスクバーの位置・サイズを知っておきたい。

1
投稿者投稿内容
フマキロン
会議室デビュー日: 2005/06/03
投稿数: 12
投稿日時: 2005-06-09 16:42
お世話になります。

新しいFORMをタスクバーとかぶらないように右下に表示しています。
そのFORMを表示中に、タスクバーのサイズを変更したら一緒にFORMもタスクバーに
合わせて表示位置をずらしていきたいのですが、どうしたらよいかわかりません。

どなたかご存知の方、ご教授お願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-06-09 17:05
こんにちは、じゃんぬ です。

引用:

新しいFORMをタスクバーとかぶらないように右下に表示しています。
そのFORMを表示中に、タスクバーのサイズを変更したら一緒にFORMもタスクバーに
合わせて表示位置をずらしていきたいのですが、どうしたらよいかわかりません。



フォームの位置をデスクトップ座標で変更する



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-06-09 17:16
で、変更されたタイミングを捕捉したい場合には、
WM_SETTINGCHANGE を拾えばいいのかな?(自信なし)
フマキロン
会議室デビュー日: 2005/06/03
投稿数: 12
投稿日時: 2005-06-10 18:13
お世話になります。

じゃんぬ様、どうもありがとうございました。
フォーム表示前に、this.SetDesktopBounds(64, 32, 512, 256);処理をすることで、
タスクバーのサイズが変わるとフォームの位置もずれるという対応ができました。

そこでなのですが、もう1つ悩んでいることがあります。

FORM1からFORM2を呼んで画面上に表示させています。表示させる時は、
int ScreenWidth = Screen.PrimaryScreen.WorkingArea.Width;
int ScreenHeight = Screen.PrimaryScreen.WorkingArea.Height;
でタスクバーを除けた画面縦横幅を取得して画面右下に表示させています。

FORM2が表示された後、一旦そのFORM2をCloseしてタスクバーのサイズを変更した後、
またFORM1からFORM2を呼んでみると、上記タスクバーを除けた画面縦横幅が更新されず
前回表示させたとこと同じ場所にFORM2が表示されてしまいます。
上記、タスクバーを除けた画面縦横幅を取得する処理はFORM2を表示させる度に
処理しているのですが、更新されていなくうまくいきません。。

タスクバーのサイズを変更したにも関わらず、正確な画面縦横幅がなぜ取得できないのでしょうか?

以上、宜しくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-06-10 18:22
こんにちは、じゃんぬ です。

引用:

タスクバーのサイズを変更したにも関わらず、正確な画面縦横幅がなぜ取得できないのでしょうか?


もしかして、OS は Windows XP で、XP テーマ (MSSTYLE) を適用していませんか?



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
フマキロン
会議室デビュー日: 2005/06/03
投稿数: 12
投稿日時: 2005-06-10 18:30
お世話になります。フマキロンです。

OSは「WindowsXP」を使用しております。
XPテーマというのは、画面プロパティのところで確認したらいいのでしょうか?
1

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