0

フォームの背景を透明にする作業を行っているので、ランダムなプロジェクトで次のコードをテストしたところ、完全に機能しましたが、新しいプロジェクトに適用すると、読み込みプロセス中に読み取られませんでした。ブレイクポイントに挑戦!! 私は何を間違っていますか?

protected override void OnPaintBackground(PaintEventArgs e)
{
    Bitmap bmp = new Bitmap(AFK_AIESEC.Properties.Resources.splash);
    this.locked.BackgroundImage = bmp;
}
4

1 に答える 1

0

OnPaint メソッドを確実にオーバーライドしたい場合は、コンストラクターで次のようにフォーム スタイルを設定する必要があります。

this.SetStyle(ControlStyles.AllPaintingInWmPaint 
              | ControlStyles.OptimizedDoubleBuffer
              | ControlStyles.ResizeRedraw 
              | ControlStyles.DoubleBuffer 
              | ControlStyles.UserPaint
              , true);

そこにある重要な設定は ControlStyles.UserPaint で、自分でペイントを処理したいことを伝えます。

于 2013-05-10T04:58:38.480 に答える