1

フォームにいくつかのユーザー描画コントロールがありますが、残念ながら、フォームが表示されると、ユーザー描画コントロールは現在のフォームの背景ではなく、以前のフォームの背景を表示しています。

OnPaint イベントは非常に単純で、OnBackgroundPaint イベントは空です...

このような:

    protected override void OnPaint(PaintEventArgs pe)
    {
        pe.Graphics.DrawImageUnscaled(_bmpImage, 0, 0);            
    }

    protected override void OnPaintBackground(PaintEventArgs pevent)
    {
        //Leave empty...
    }

現在の背景を、前のフォームの背景ではなく、表示されている透明度にするにはどうすればよいですか?

4

2 に答える 2

1

ウィンドウスタイルを設定する必要があります-これは素晴らしい基本的な記事です。

于 2008-10-19T04:39:20.660 に答える
1

あなたはメソッドをオーバーライドしているようでOnPaintBackground、背景については何もしていません。空のままにしているので、そもそもオーバーライドしないでください。OnPaintBackgroundデフォルトのハンドラーにその仕事をさせるとどうなりますか?それは自動的に現在のコントロールの背景を適切に描画するべきではありませんか?

PS私はカスタムペイントの.Netコントロールを使ったことがありません。私はあなたの問題の解決策を見つけるのを助けるために単に推測しているだけです。私が提案していることが完全にオフになっている場合は、私を許してください...

于 2008-10-19T04:54:55.807 に答える