2010-01-15 5 views
2

Je crée un contrôle utilisateur en C# .Net 2.0. Je dois appliquer glisser et déposer des images entre ces contrôles. J'ai effectué un effet de glisser-déposer.Comment effacer la zone d'écran ou Redessiner l'écran en C#

Mais le problème est que je dois montrer le mouvement de contrôle pendant le déplacement de la souris. Pour que je dessine un rectangle à l'écran à l'aide de ControlDraw.DrawReversibleFrame()

Le problème est que tout en tirant avec l'événement de déplacement de la souris rectangle est dessiné sur écran et parce qu'aucun repeindre à l'écran, il existe à l'écran.

Alors s'il vous plaît quelqu'un peut-il me dire soit comment effacer les graphiques dessinés ou comment forcer pour redessiner l'écran.

+0

Voulez-vous dire que lorsque vous faites glisser quelque chose et que vous passez la souris sur le contrôle (avec le bouton gauche enfoncé), vous voulez voir apparaître un rectangle sur le contrôle juste en dessous de la souris? Ce rectangle bougera avec la souris jusqu'à ce que vous laissiez tomber le truc dessus? – A9S6

+0

Je veux faire glisser le contrôle lui-même et tomber sur Like Panel. Donc, pour montrer que le contrôle est en train de glisser, je veux montrer un rectangle de la même taille que le contrôle. – prashant

Répondre

1

Vous devez dessiner le cadre «réversible» dans la même position que précédemment pour l'inverser, avant de dessiner l'image suivante dans la nouvelle position.

Le pseudo-code est:

bool prev_rev_frame = false; 
Rect prev_rev_rect; 

... 

void on_mouse_move() { 
    if(prev_rev_frame) 
    Control.drawReversableFrame(prev_rev_rect); 
    Rect new_rev_rect = .... 
    Control.drawReversableFrame(new_rev_rect); 
    prev_rev_frame = true; 
    prev_rev_rect = new_rev_rect; 
} 

Mais en général, je recommande changer le curseur de la souris sur une icône glisser-déposer ou une vignette de l'image serait beaucoup plus approprié.

+0

thanks Will, ControlPaint.DrawReversibleFrame() - Dessine un cadre sur l'écran avec la couleur inverse que son arrière-plan. Ici, je n'ai aucun problème. Je peux changer le curseur de la souris mais ce n'est pas mon exigence. L'exigence est de montrer que le contrôle de l'utilisateur est en train de glisser. merci – prashant

Questions connexes