2009-02-22 13 views
1

J'ai une application CF 2.0 avec un PictureBox sur un formulaire. Je veux déplacer le PictureBox avec le déplacement de souris et j'ai besoin d'ajouter le double tampon au formulaire pour éviter le scintillement.C# CF, WinForms et double tampon

Comment est-ce que je peux faire ceci?

Merci!

Répondre

5

Vous n'avez pas besoin de la forme à double tampon, vous avez besoin que le PB soit. Ce n'est pas si facile de venir à CF. Cependant, vous pouvez créer votre propre contrôle, PB est assez simple. Par exemple:

using System; 
using System.Drawing; 
using System.Windows.Forms; 

public class MyPictureBox : Control { 
    private Image mImage; 
    public Image Image { 
    get { return mImage; } 
    set { mImage = value; Invalidate(); } 
    } 
    protected override void OnPaintBackground(PaintEventArgs pevent) { 
    // Do nothing 
    } 
    protected override void OnPaint(PaintEventArgs e) { 
    using (Bitmap bmp = new Bitmap(this.ClientSize.Width, this.ClientSize.Height)) { 
     using (Graphics bgr = Graphics.FromImage(bmp)) { 
     bgr.Clear(this.BackColor); 
     if (mImage != null) bgr.DrawImage(mImage, 0, 0); 
     } 
     e.Graphics.DrawImage(bmp, 0, 0); 
    } 
    base.OnPaint(e); 
    } 
} 

Si tout va bien, je ne pas utiliser des choses qui ne sont pas disponibles dans CF ...

+0

PB? Quelle est la signification de PB? – VansFannel

+0

PB == PictureBox. –

+0

Cela ne fonctionne pas. J'ai besoin de double buffer sur Form parce que je déplace l'ensemble PictureBox (je pense). – VansFannel