2008-12-05 10 views
3

Dans VisualBasic.Net Lorsque j'accepte une zone d'image, puis dessine une zone, elle dessine puis se vide immédiatement. Fonctionne bien quand je le redessine, mais presque toujours la première fois que je dessine dessus. Cela a eu lieu avec plusieurs programmes différents, et le fichier d'aide n'est d'aucune aide.La zone d'image devient vide

Répondre

0

Merci Andrew, mais pas d'aide. J'utilise .Net Framework 1.1, qui n'offre pas la propriété DoubleBuffered ... il était nouveau dans 2.0.

Vous ne savez pas quelle information supplémentaire fournir .. le code est long de 300 lignes. Quand un bouton est cliqué, le code étend mon formulaire, rend deux boîtes d'image visibles (l'une sur l'autre (l'arrière est pour des étiquettes graphiques), puis utilise des pinceaux graphiques et des stylos pour dessiner un graphique sur le devant Il y a une activité de base de données et des calculs en cours en arrière-plan en même temps

0

Je suppose que vous utilisez le composant PictureBox standard: dessinez-vous dans le Paint-Handler, sinon le PictureBox effacera simplement vos trucs peint la prochaine fois, il est demandé de se redessiner (effacer arrière-plan, etc.).

0

Oui, je crois que je suis en utilisant la boîte d'image standard.

par Paint-gestionnaire, je suppose que vous voulez dire un [contrôle] .P aintEvent Handler. Non, je n'utilise pas de gestionnaire d'événements pour faire le dessin ... dessiner mon graphique n'est pas un événement en soi, mais fait partie d'une réponse beaucoup plus grande à un événement de clic sur un bouton. Si vous dites que le fait que le code de dessin fasse partie d'un gestionnaire séparé et spécifique peut résoudre mon problème, je suppose que je pourrais déclencher un événement interne chaque fois que je veux redessiner le graphique. Mais je préférerais juste comprendre ce qui fait que le PB se redessine sans qu'on le lui dise.

0

Si vous ne pouvez pas utiliser le DoubleBuffered, vous pouvez CACHER une deuxième zone d'image. Vous faites le dessin et une fois que vous avez terminé, vous revenez au VISIBLE. De cette façon, le processus de dessin est fait sur le caché et le blanc/scintillement ne sera pas affiché.

1

Habituellement, si vous dessinez quelque chose sur une boîte d'image ou sur un autre contrôle, vous devez prendre en charge l'événement OnPaint et vous êtes responsable de la persistance de ce que vous dessinez sur cet événement.