none
フォーム内のコントロールのAnchor設定が無効になる RRS feed

  • 質問

  • FORM内に配置した各種のコントロールが、デザイン時にはFormサイズをマウスで変更するとAnchor設定に基づき移動するのですが、実行すると全く動かなくなります。

    複数のFormがあるのですが、ある一つのFormにだけこの現象が発生します。

    調べた限りでは他のFormとの違いは無いのですが、Anchor設定が無効になる条件が何かあるのでしょうか?

    ※なお、このFormには子Formはありません。

    お気づきの点があれば、よろしくお願いします。

    2018年12月18日 1:40

回答

  • では、コードを削るところから始めてみませんか?

    対象のフォームの Designer.vb 部分とコンストラクタを除いてすべてのコードをコメント化し、Application.Run で表示してみて現象が起きるのか?

    起きるのであれば、Designer.vb の中のコードが原因です。
    現象が起きなくなるまで少しずつコメントにしていきます。

    起きないのであれば、コメント化したコードの中に原因があります。
    逆に少しずつコメント化を解除していきます。

    そうやって現象の起きる最低限のコードを提示していただけたら何かわかるのではないでしょうか。




    • 編集済み KOZ6.0 2019年1月2日 9:24
    • 回答としてマーク mhe00260 2019年1月15日 1:28
    2018年12月29日 15:56

すべての返信

  • ナビゲーションバーからInitializeComponentを開き、直接そのフォームに関する記述をチェックしてみて下さい。何かが邪魔をしているのかもしれません。
    また、開発環境、および.NET Frameworkのバージョンはいくつでしょうか?


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    2018年12月18日 2:09
    モデレータ
  • SuspendLayout して ResumeLayout していないとかですかね?
    2018年12月18日 4:14
  • 正常に動くFORMと比較してみましたが、特に怪しい記述は見当たりませんでした。

    環境は、Visual Studio Professional 2017 Ver 15.9.4

    .Net Ver 4.7.03062

    です。

    2018年12月18日 7:45
  • 初期処理(LOAD,SHOWN)では、何もしていません。

    ※表示後もしていません。

    2018年12月18日 7:46
  • あと考えられるのは・・・

    (1) 貼り付けたコントロールの MinimumSize/MaximumSize が設定されている
    でもデザイン時に機能してるなら違うっぽいですね。

    (2) LayoutEngine をカスタマイズしている

    (3) 貼り付けたコントロールやコンポーネントが Anchor を無効にしている

    ことくらいですかね。

    現象のおきる最低限のコードは提示できますでしょうか?


    2018年12月18日 14:09
  • あとはあまり関係ないかもしれませんが、クリーンアップして、念のためリビルドしてみるとかでしょうか・・・

    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    2018年12月19日 0:40
    モデレータ
  • > (1) 貼り付けたコントロールの MinimumSize/MaximumSize が設定されている

    設定はしていますが、正常なFORMにも設定していますし、デザイン時は機能しています。

    (2) LayoutEngine をカスタマイズしている

    特に何もしていません。

    (3) 貼り付けたコントロールやコンポーネントが Anchor を無効にしている

    逆に、そのようなコントロールがあるのでしょうか?

    標準コントロールしか使用していません。

    パネル、ラベル、テキストボックス、ボタンぐらいです。


    2018年12月28日 8:14
  • 試してみましたが、効果なしでした・・・
    2018年12月28日 8:16
  • では、コードを削るところから始めてみませんか?

    対象のフォームの Designer.vb 部分とコンストラクタを除いてすべてのコードをコメント化し、Application.Run で表示してみて現象が起きるのか?

    起きるのであれば、Designer.vb の中のコードが原因です。
    現象が起きなくなるまで少しずつコメントにしていきます。

    起きないのであれば、コメント化したコードの中に原因があります。
    逆に少しずつコメント化を解除していきます。

    そうやって現象の起きる最低限のコードを提示していただけたら何かわかるのではないでしょうか。




    • 編集済み KOZ6.0 2019年1月2日 9:24
    • 回答としてマーク mhe00260 2019年1月15日 1:28
    2018年12月29日 15:56
  • コードを削る。

    やってみました。

    結果、元のデザインと全く同じコードになりましたが、現象は起きなくなりました。

    正直、意味不明です・・・

    しかし、解決したので、このまま放置しようと思います。

    ありがとうございました。

    2019年1月15日 1:30