2016-06-26 8 views
0

ネストされたコントロールと、Control.Paintイベントハンドラーを使用してカスタムボーダーを描画するアプリケーションを作成しようとしています。 、またおそらく、境界線を引く(と、どのように「ChocoTesterについて」と「ビューのバージョン...」ラベルと同様に、アイコンを含むPictureBoxコントロール親のカスタム描画コードを継承する

Drawing Glitch Example

注意:以下の画像を参照してください。背景色も同様ですが、すぐには見えません)。一番外側のボックスにControl.Paintイベントハンドラを追加しましたのみです。ただし、何らかの理由で、子コントロールが親のペイントイベントコードを継承しています。このプロジェクトで作業を開始するまでは、これまでWindowsフォームではこれまでに行ったことはありませんでした。

子コントロールのBackColorTransparentです。これは、上記の症状とは関係ありません。 親のカスタムコントロールPaintがある別のコントロールの子コントロールは、標準のLabelインスタンスまたはカスタムの図面コードが独自のパネルであるため、この動作を示します。ここで

は、この問題を示すサンプルPanel.Paintハンドラです:

Rectangle r = e.ClipRectangle; r.Inflate(-1, -1); 
e.Graphics.FillRectangle(Brushes.AliceBlue, r); 
e.Graphics.DrawRectangle(Pens.DarkBlue, r); 
+0

は、問題を再現するコードを共有しています。 –

答えて

0

私は実際に私自身の最後でこれを解決しました。問題は、図面のサイズを変更するのにPaintEventArgs.ClipRectangleを使用していたことでした。私がControl.WidthControl.Heightを手動で使用してRectangleを作成し、これを使って画面に描画すると、上で説明した動作がなくなります。

関連する問題