je le code exemple suivant, que je pense à la couleur du panneau sur le rouge de forme dès qu'il charge:Dessin sur un panneau dans le constructeur d'une forme
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
drawstuff();
}
public void drawstuff()
{
using (Graphics g = panel1.CreateGraphics())
{
g.Clear(Color.Red);
}
}
private void button1_Click(object sender, EventArgs e)
{
drawstuff();
}
}
Cependant, pour une raison quelconque ne dessine pas sur le panneau lorsque j'appelle ma fonction drawstuff()
du constructeur comme ça. Lorsque j'appuie sur le bouton pour appeler drawstuff()
, cela fonctionne très bien.
Quelqu'un peut-il expliquer ce qui se passe ici?
Essayez le panneau invalidant à la fin de l'appel à DrawStuff. (myPanel.Invalidate()); –
@SnOrfus - J'ai essayé Invalidate() à un moment donné, et il ne l'a pas corrigé. Je pense que le problème fondamental est que j'essaie de dessiner avant le début du cycle de peinture normal, comme indiqué dans la réponse ci-dessous. – WildCrustacean
@SnOrfus: INFIRMER à la fin d'une action de tirage personnalisé sera _faire sure_ il est effacé immédiatement. –