- PR -

Panelの子コントロールにしたくない

1
投稿者投稿内容
まったけ
会議室デビュー日: 2006/09/08
投稿数: 13
投稿日時: 2007-01-18 15:11
VB2005.NET でフォームをデザインしているときの話です。

フォームの左側にPanel、右側にButtonを貼り付けます。(PanelとButtonが重ならないように注意)。
次に、ButtonをPanelの上にドラッグしていくと、自動的にPanelの子コントロールになってしまいます。これを子コントロールにせずに、単純に重なっているだけの状態にするにはどうしたらよいのでしょうか?

[Shift]キーや[Alt]キーを押しながらドラッグしてみたのですが効果ありません。
どなたか方法をご存じでしたらご教授願います。

※再現のコツ
・Buttonのサイズは、Panelにスッポリ入るようにする。
・ButtonをドラッグしているときのマウスポインタがPanel内に入るようにする。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-01-18 15:37
思いつきで答えると、
InitializeComponetに子コントロールとして追加するよう記述されているので、
それを、フォームに属するように修正すれば、うまくいくかもね

デザイナ側での手順に付いては分かりません。

追記:
InitializeComponetを手で修正する場合、InitializeComponetの外に置かなきゃいけなかったかな?
忘れちゃった。

[ メッセージ編集済み 編集者: かずくん 編集日時 2007-01-18 15:39 ]
まったけ
会議室デビュー日: 2006/09/08
投稿数: 13
投稿日時: 2007-01-18 16:00
アドバイスありがとうございます。

デザイン時に不便しているので、できればデザイン時の方法があればいいのですが、、。

先にButtonを配置してからPanelを貼り付けるという方法で回避できるのですが、
後からButtonをマウスで動かそうとすると同様にPanelの子コントロールになって
しまいます。なにか簡単な方法があると思うのです。知ってしまえば「な〜んだ」
って感じの答が、、、。
Shino
会議室デビュー日: 2005/11/25
投稿数: 1
投稿日時: 2007-01-18 16:31
キーボードの矢印キーで移動すれば子コントロールにならなかったと思いますが、
マウスでの移動でないとダメなのでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-18 16:33
引用:

まったけさんの書き込み (2007-01-18 15:11) より:

これを子コントロールにせずに、単純に重なっているだけの状態にするにはどうしたらよいのでしょうか?


マウスだと、一旦 Panel ごと切り取って Button を配置してから、貼り付け直すくらいしか思いつきません。

まあ、これをやるくらいなら、キーボードを使った方が良いでしょうね。
[Ctrl] + 矢印キーでやれば、それほど手間は感じないでしょう...

...いや、その前に、重なり合った状態で、コントロールを配置することがまずないですね。
コンテナ系のコントロールが上に被っている、もしくは、コンテナ上にあるクセにコンテナに属していないとなると、保守しにくいですから。
これは、良い画面設計とは言えないと思います。(これが、良く見かけるわけですが...)

# それにしても、Locked 状態でも子コントロールが追加可能なのは変ですね。

引用:

かずくんさんの書き込み (2007-01-18 15:37) より:

思いつきで答えると、InitializeComponetに子コントロールとして追加するよう記述されているので、それを、フォームに属するように修正すれば、うまくいくかもね


obj.Controls.Add メソッドの obj が親コンテナなのでうまくいきます。

引用:

InitializeComponetを手で修正する場合、InitializeComponetの外に置かなきゃいけなかったかな?


そんなことはないですが、初心者はジェネレータが生成したコードについては、触れない方が良いでしょうね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まったけ
会議室デビュー日: 2006/09/08
投稿数: 13
投稿日時: 2007-01-18 17:06
皆様、ヒントをいただきましてありがとうございます。

矢印キーで移動させることで思い通りのことができました。盲点でした。
1

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