- - PR -
Panelの子コントロールにしたくない
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-18 15:11
VB2005.NET でフォームをデザインしているときの話です。
フォームの左側にPanel、右側にButtonを貼り付けます。(PanelとButtonが重ならないように注意)。 次に、ButtonをPanelの上にドラッグしていくと、自動的にPanelの子コントロールになってしまいます。これを子コントロールにせずに、単純に重なっているだけの状態にするにはどうしたらよいのでしょうか? [Shift]キーや[Alt]キーを押しながらドラッグしてみたのですが効果ありません。 どなたか方法をご存じでしたらご教授願います。 ※再現のコツ ・Buttonのサイズは、Panelにスッポリ入るようにする。 ・ButtonをドラッグしているときのマウスポインタがPanel内に入るようにする。 | ||||||||||||
|
投稿日時: 2007-01-18 15:37
思いつきで答えると、
InitializeComponetに子コントロールとして追加するよう記述されているので、 それを、フォームに属するように修正すれば、うまくいくかもね デザイナ側での手順に付いては分かりません。 追記: InitializeComponetを手で修正する場合、InitializeComponetの外に置かなきゃいけなかったかな? 忘れちゃった。 [ メッセージ編集済み 編集者: かずくん 編集日時 2007-01-18 15:39 ] | ||||||||||||
|
投稿日時: 2007-01-18 16:00
アドバイスありがとうございます。
デザイン時に不便しているので、できればデザイン時の方法があればいいのですが、、。 先にButtonを配置してからPanelを貼り付けるという方法で回避できるのですが、 後からButtonをマウスで動かそうとすると同様にPanelの子コントロールになって しまいます。なにか簡単な方法があると思うのです。知ってしまえば「な〜んだ」 って感じの答が、、、。 | ||||||||||||
|
投稿日時: 2007-01-18 16:31
キーボードの矢印キーで移動すれば子コントロールにならなかったと思いますが、
マウスでの移動でないとダメなのでしょうか。 | ||||||||||||
|
投稿日時: 2007-01-18 16:33
マウスだと、一旦 Panel ごと切り取って Button を配置してから、貼り付け直すくらいしか思いつきません。 まあ、これをやるくらいなら、キーボードを使った方が良いでしょうね。 [Ctrl] + 矢印キーでやれば、それほど手間は感じないでしょう... ...いや、その前に、重なり合った状態で、コントロールを配置することがまずないですね。 コンテナ系のコントロールが上に被っている、もしくは、コンテナ上にあるクセにコンテナに属していないとなると、保守しにくいですから。 これは、良い画面設計とは言えないと思います。(これが、良く見かけるわけですが...) # それにしても、Locked 状態でも子コントロールが追加可能なのは変ですね。
obj.Controls.Add メソッドの obj が親コンテナなのでうまくいきます。
そんなことはないですが、初心者はジェネレータが生成したコードについては、触れない方が良いでしょうね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-01-18 17:06
皆様、ヒントをいただきましてありがとうございます。
矢印キーで移動させることで思い通りのことができました。盲点でした。 |
1