C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ロックしたコントロールの位置がずれる

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■103008 / inTopicNo.1)  ロックしたコントロールの位置がずれる
  
□投稿者/ mashimo (10回)-(2024/03/13(Wed) 09:41:07)

分類:[VB.NET/VB2005 以降] 

VB Windows フォームアプリ(.NET Framework)を使用してアプリを作成しています。

デザイナを使用してフォーム上にTabControlを配置、全ページにPanel1とPanel2を上下に密着して配置。
フォームサイズに追従するようにPanel1は4方向にPanel2は左右下にAnchor設定。
TabControl、PanleともにLockedをTrueに設定し、コードでの位置変更等は行っていません。

この状態でビルドを繰り返すと、気がつくとTabControlの下側に固定したはずのPanel2が少しづつ上に上がって来ています。
Panel2は位置が変更、Panel1はPanel2の移動量に合わせて高さが変更、Panel2の下に隙間が発生します。

TabControlの全ページで同じ現象が発生しますが、位置のずれ量は微妙に異なります。

この現象の原因、対策方法はありますでしょうか?
よろしくお願いします

OS:Windows10 22H2 64bit
VS:2022 Communication
.NET 4.72


引用返信 編集キー/
■103009 / inTopicNo.2)  Re[1]: ロックしたコントロールの位置がずれる
□投稿者/ radian (154回)-(2024/03/13(Wed) 14:35:39)
2024/03/13(Wed) 14:51:36 編集(投稿者)

No103008 (mashimo さん) に返信
> VB Windows フォームアプリ(.NET Framework)を使用してアプリを作成しています。
>
> デザイナを使用してフォーム上にTabControlを配置、全ページにPanel1とPanel2を上下に密着して配置。
> フォームサイズに追従するようにPanel1は4方向にPanel2は左右下にAnchor設定。
> TabControl、PanleともにLockedをTrueに設定し、コードでの位置変更等は行っていません。
>
> この状態でビルドを繰り返すと、気がつくとTabControlの下側に固定したはずのPanel2が少しづつ上に上がって来ています。
> Panel2は位置が変更、Panel1はPanel2の移動量に合わせて高さが変更、Panel2の下に隙間が発生します。

フォームのAutoScaleModeをNoneにしても発生しますか?
引用返信 編集キー/
■103011 / inTopicNo.3)  Re[2]: ロックしたコントロールの位置がずれる
□投稿者/ mashimo (12回)-(2024/03/13(Wed) 17:39:44)
No103009 (radian さん) に返信
> 2024/03/13(Wed) 14:51:36 編集(投稿者)
>
> ■No103008 (mashimo さん) に返信
>>VB Windows フォームアプリ(.NET Framework)を使用してアプリを作成しています。
>>
>>デザイナを使用してフォーム上にTabControlを配置、全ページにPanel1とPanel2を上下に密着して配置。
>>フォームサイズに追従するようにPanel1は4方向にPanel2は左右下にAnchor設定。
>>TabControl、PanleともにLockedをTrueに設定し、コードでの位置変更等は行っていません。
>>
>>この状態でビルドを繰り返すと、気がつくとTabControlの下側に固定したはずのPanel2が少しづつ上に上がって来ています。
>>Panel2は位置が変更、Panel1はPanel2の移動量に合わせて高さが変更、Panel2の下に隙間が発生します。
>
> フォームのAutoScaleModeをNoneにしても発生しますか?

回答ありがとうございます
最初に書き忘れていましたが、AutoScaleModeはNoneにしてあります
引用返信 編集キー/
■103013 / inTopicNo.4)  Re[3]: ロックしたコントロールの位置がずれる
□投稿者/ mashimo (13回)-(2024/03/14(Thu) 08:58:37)

> 回答ありがとうございます
> 最初に書き忘れていましたが、AutoScaleModeはNoneにしてあります

どうやらビルト毎に変わるのではなく、Panel上に配置してあるコントロール位置やサイズを変更するとレイアウトが崩れてしまいます。
今はどんどん深みにはまって、コードで全コントロールの位置・サイズを指定しないといけないような状態です。
全然Visualでない・・・
引用返信 編集キー/
■103014 / inTopicNo.5)  Re[3]: ロックしたコントロールの位置がずれる
□投稿者/ radian (155回)-(2024/03/14(Thu) 11:20:46)
No103011 (mashimo さん) に返信
> 回答ありがとうございます
> 最初に書き忘れていましたが、AutoScaleModeはNoneにしてあります

一応書いてある条件で書かれているような感じで
フォーム、コントロールを設定してビルドしてみましたが、現象は再現出来ませんでした。
新規プロジェクト作って、フォームに必要最小限のコントロールを配置して
同じように設定しても、ズレる現象は再現しますか?
引用返信 編集キー/
■103015 / inTopicNo.6)  Re[4]: ロックしたコントロールの位置がずれる
□投稿者/ kiku (423回)-(2024/03/14(Thu) 14:44:22)
No103014 (radian さん) に返信
> ■No103011 (mashimo さん) に返信
>>回答ありがとうございます
>>最初に書き忘れていましたが、AutoScaleModeはNoneにしてあります
>
> 一応書いてある条件で書かれているような感じで
> フォーム、コントロールを設定してビルドしてみましたが、現象は再現出来ませんでした。
> 新規プロジェクト作って、フォームに必要最小限のコントロールを配置して
> 同じように設定しても、ズレる現象は再現しますか?

当方も再現させようと、いろいろ実験してみましたが
再現しません。
再現するようでしたら、第3者にもわかるような
再現手順を教えて欲しいです。
引用返信 編集キー/
■103016 / inTopicNo.7)  Re[5]: ロックしたコントロールの位置がずれる
□投稿者/ mashimo (14回)-(2024/03/14(Thu) 15:15:32)
No103015 (kiku さん) に返信
> ■No103014 (radian さん) に返信
>>■No103011 (mashimo さん) に返信
> >>回答ありがとうございます
> >>最初に書き忘れていましたが、AutoScaleModeはNoneにしてあります
>>
>>一応書いてある条件で書かれているような感じで
>>フォーム、コントロールを設定してビルドしてみましたが、現象は再現出来ませんでした。
>>新規プロジェクト作って、フォームに必要最小限のコントロールを配置して
>>同じように設定しても、ズレる現象は再現しますか?
>
> 当方も再現させようと、いろいろ実験してみましたが
> 再現しません。
> 再現するようでしたら、第3者にもわかるような
> 再現手順を教えて欲しいです。

回答ありがとうございます
記憶が曖昧ですが、プロジェクト作成して開発し始めた頃は発生していなかったものが、いずれかのタイミングで発生し継続している状況です。
とりあえず今作成中のものは完成させなければいけないので、このままゴリ押しで進めます。
別に新しいテストプロジェクトを作成して、再現できるパターンを見つけに行きます。
それまでは一旦保留させてください。


引用返信 編集キー/
■103017 / inTopicNo.8)  Re[6]: ロックしたコントロールの位置がずれる
□投稿者/ 魔界の仮面弁士 (3755回)-(2024/03/14(Thu) 18:28:54)
No103016 (mashimo さん) に返信
> 記憶が曖昧ですが、プロジェクト作成して開発し始めた頃は発生していなかったものが、いずれかのタイミングで発生し継続している状況です。
> とりあえず今作成中のものは完成させなければいけないので、このままゴリ押しで進めます。

過去には、Form1.designer.* ファイル内の AutoScaleDimensions プロパティの値に応じて、
デザインが予期せず変化してしまう事象を経験しています。
https://twitter.com/Benshi_Orator/status/1440619071947427852

・新規プロジェクトでは発生せず、特定のプロジェクトでのみ発生する事象ですか?

・フォームデザインを、dpi が 100% ではない環境で編集・保存したことはありませんか?

・同じソースを、別の Visual Studio バージョンで開くと結果が変わりますか?

・そのフォームでは、自作の UserControl などを利用していますか? (あるいは継承 Form の利用など)
引用返信 編集キー/
■103018 / inTopicNo.9)  Re[6]: ロックしたコントロールの位置がずれる
□投稿者/ radian (156回)-(2024/03/15(Fri) 09:17:09)
2024/03/15(Fri) 09:20:15 編集(投稿者)

No103016 (mashimo さん) に返信
> ■No103015 (kiku さん) に返信
>>■No103014 (radian さん) に返信
> >>
> >>一応書いてある条件で書かれているような感じで
> >>フォーム、コントロールを設定してビルドしてみましたが、現象は再現出来ませんでした。
> >>新規プロジェクト作って、フォームに必要最小限のコントロールを配置して
> >>同じように設定しても、ズレる現象は再現しますか?
>>
>>当方も再現させようと、いろいろ実験してみましたが
>>再現しません。
>>再現するようでしたら、第3者にもわかるような
>>再現手順を教えて欲しいです。
>
> 回答ありがとうございます
> 記憶が曖昧ですが、プロジェクト作成して開発し始めた頃は発生していなかったものが、いずれかのタイミングで発生し継続している状況です。
> とりあえず今作成中のものは完成させなければいけないので、このままゴリ押しで進めます。
> 別に新しいテストプロジェクトを作成して、再現できるパターンを見つけに行きます。
> それまでは一旦保留させてください。

バージョン管理しているなら、
・発生していなかったバージョン
・発生するようになったバージョン
を特定して、差分取ったほうがいいですね。
また、継承したフォームやUserControlを使用しているなら、継承元の処理やプロパティも疑った方がいいでしょう。
引用返信 編集キー/
■103120 / inTopicNo.10)  Re[7]: ロックしたコントロールの位置がずれる
□投稿者/ mashimo (15回)-(2024/05/21(Tue) 09:26:01)
・新規プロジェクトでは発生せず、特定のプロジェクトでのみ発生する事象ですか?
→新規プロジェクトでも発生します
・フォームデザインを、dpi が 100% ではない環境で編集・保存したことはありませんか?
→多分、あると思います
・同じソースを、別の Visual Studio バージョンで開くと結果が変わりますか?
→別のバージョンをインストールしていないのでわかりませんが、2019のときも発生した記憶があります
・そのフォームでは、自作の UserControl などを利用していますか? (あるいは継承 Form の利用など)
→使用していません

バージョン管理しているなら、
・発生していなかったバージョン
・発生するようになったバージョン
を特定して、差分取ったほうがいいですね。
また、継承したフォームやUserControlを使用しているなら、継承元の処理やプロパティも疑った方がいいでしょう。

皆さんアドバイスありがとうございました。
バージョンも含めて色々観察しましたが、どうしても再現条件を特定できませんでした。
同一バージョンから同じ操作(コントロールの追加・修正)をしても発生したりしなかったり、
TabContorolのあるページ上のコントロールを修正すると、他のページのコントロールがずれてしまったりと全く理由が想像できません。

唯一、Layoutを使用すると事象が発生しない(しにくい?)ことがわかったので、現在全ての画像を修正しております。

現象が特定できないため、一旦クローズさせていただきます。
ありがとうございました。





解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ