2010-12-06 26 views
0

J'ai quelque chose comme ceci:Comment dessiner System.Drawing.Icon à un SplitterPanel?

var systemIcon = SystemIcons.Information; 
verticalSplitPanel.SplitterDistance = systemIcon.Width; 

var g = verticalSplitPanel.Panel1.CreateGraphics(); 
g.DrawIcon(systemIcon, 0, 0); 

Cette compile et fonctionne sans erreur, mais pour une raison quelconque l'icône n'est pas visible.

J'ai aussi essayé ceci:

var systemIcon = SystemIcons.Information; 
verticalSplitPanel.SplitterDistance = systemIcon.Width; 

var g = verticalSplitPanel.Panel1.CreateGraphics(); 
g.DrawImage(systemIcon.ToBitmap(), 0, 0); 

Encore une fois, il compile, et fonctionne sans erreur, mais ne montre pas l'icône.

Comment puis-je afficher cette icône?

Répondre

1

Votre code peut peindre icône sur la surface du panneau, mais il sera effacé à chaque fois que le panneau décide de se repeindre. Au lieu d'utiliser l'objet Graphics de l'appel verticalSplitPanel.Panel1.CreateGraphics(), vous devez gérer l'événement Paint du panneau et utiliser l'objet Graphics fourni dans cet argument d'événement.

Essayez ceci:

verticalSplitPanel.Panel1.Paint += (s, eargs) => 
    { 
     var icon = SystemIcons.Information; 
     eargs.Graphics.DrawIcon(icon, 0, 0); 
    };