- - PR -
panelを使用した際にコントロールが正しく機能しない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-15 15:37
どなたかご存知の方いらっしゃいましたらアドバイスいただけませんでしょうか。
*** 環境 *** Visual Studio 2005 VB.NET WindowsXP SP2 フォームの上部あるメニューから、選択された機能をフォームに表示するアプリを作っています。 フォームは1つだけで、表示させる機能はpanel毎にわけてvisible状態を切り替えて動作させようと思っているのですが、 レイアウトを揃えようとpanelをフォームの左上で重ねると何故かvisible=Trueのコード上を通過しても FalseからTrueに変わらないという現象が起きています。 試しに大きくずらした状態で動作させてみたところ、正常にvisible=Trueになったので、これはpanelを重ねることが問題なのかと思うのですが(何故重ねると動作が違ってくるのか根本的なことはわかりませんが)、レイアウトとしてピタリと重ねなければならず、どうしたものかと悩んでおります。 解決策をご存知の方いらっしゃいませんでしょうか。 また、同様の動作で別の手法がありましたら教えていただけると幸いです。 宜しくお願い致します。 _________________ こえ部やめました(つд`) | ||||
|
投稿日時: 2008-04-15 16:01
軽く確認してみたのですが再現しません。ほかにも条件があるのでしょうか。
もしくはPanelを重ねようとデザイナ上でドラッグしたときに、Panelが入れ子になってしまったとか? | ||||
|
投稿日時: 2008-04-15 17:13
rainさん、確認していただき有難う御座います。
私も通常は発生しないと思っていたので、今回当惑しております。 panelを重ねる際に、panelプロパティのLock=Trueにしているので入れ子にはならないだろう、 大丈夫だとたかをくくって居ましたがそちらも確認してみようと思います。 | ||||
|
投稿日時: 2008-04-15 22:25
Lockedプロパティ(のことですよね?)のデザイナに表示された説明を読むと、大きさと位置を固定にするだけのようです。 Locked=FalseのPanelを、マウスを使ってLocked=TrueのPanelに重ねてみたところ、入れ子になってしまいました。 マウスでドラッグせず、Locationプロパティを操作したほうが確実ですね。 | ||||
|
投稿日時: 2008-04-16 01:54
パネルをぴたりんこに重ねてというのはカレントのパネルは常に1つ、
という状態ですよね? BringToFront でイケません? | ||||
|
投稿日時: 2008-04-16 10:19
おはようございます。
rainさん、ぴあちゃんさん、レス有難う御座います。 >マウスを使ってLocked=TrueのPanelに重ねてみたところ、入れ子になってしまいました。 再確認しましたが、入れ子になっていましたorz どうやらこれが決定的な原因だったようです。 お二方が提示して頂いた手法で正しく表示されることを確認しましたが、 今回はLocationを設定する方法を取りたいと思います。 アドバイス頂き本当に有難う御座いました。 こえ部に恥ずかしい歌と台詞があるので、鼻で笑ってやってくださいorz |
1