質問

私が簡単なユーザー制御は手動で作成されたようなもの

MyUserControl ctrl = new MyUserControl();

を制御していたデザインとなってい BackColor=。透明 このオプションまでを設定します 親会 の制御な形式にする時間での色です。

ように、透明なものでは非表示の制御に存在するのです。私は100%確実に制御することが背景は何か私が起きた時にフックでは、防止その他の制御にかかっているのです。

基本的にはそうすれば

  • 成形
  • ドロップボタンで
  • をクリックしハンドラのボタンで次の

MyUserControl ctrl = new MyUserControl();
ctrl.Parent = this;
ctrl.BackColor = Color.Transparent;
ctrl.Size = this.Parent.ClientRectangle.Size;
ctrl.Location = this.Parent.ClientRectangle.Location;
ctrl.BringToFront();
ctrl.Show();

基本的にはたいのusercontrolをオーバーレイの形を見せながら、underlaying制御には、この透明にしますしたいと思わない追加の形態制御回収しないので本当に所属する形式で表示ontopのか

また同じことをやってても、ずは、親を設定、その制御裕を示します。

よろしく!

編集:場をオーバーライドOnPaintBackground法のusercontrolを防ぐことが背景から塗装しい作品しかし、そのヘヴンリースキーリゾートには透明パーツのPNG画像im絵画の制御を使用DrawImageは、意味がある。

役に立ちましたか?

解決

Windowsフォームは本当に透明コントロールをサポートしていません。
あなたは(Googleでそれを見て)コントロールのCreateParamsをプロパティをオーバーライドし、カスタムスタイルを設定することでこの制限を回避することができます。
また、あなたはあなたのコントロールだけでなく、親コントロールだけでなく再描画されるように、あなたのコントロールの描画を無効にする必要があります。その理由は、背景があなたのコントロール塗料自体の前に塗装しなければならないということである。
最後に、あなたが行ったように、バックグラウンドがペイントされていないことを確認するために、OnPaintBackgroundメソッドをオーバーライドする必要があります。

かなり不器用な、と完璧ではないが、それが動作するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top