2010-10-04 5 views
2

J'ai une application qui exécute des tests sur un compte client afin de juger si leur service fonctionne correctement. Au cours du processus d'exécution des tests, l'application lit chaque test et vérifie si elle réussit/échoue/etc ... Elle joue une coche verte/rouge x sur la tabPage elle-même comme une imagekey ... la clé image est assignée comme tabPage est en fait un objet qui est transmis à la fonction afin que je puisse me référer à partir d'une méthode différente. Lorsque le tabControl pour la tabPage est créé (dynamiquement), une imageList est ajoutée à la tabControl (d'où les images sont tirées)C# TabPage ImageKey pas de dessin

(tabControl[0] as TabControl).ImageList = imageList2; 

Alors, quand la méthode obtient finalement autour du code pour assigner le ImageKey il ne fonctionne dans le code, mais il montre juste comme une image vierge. C'est bizarre, parce que cela fonctionne pour certaines personnes et pas d'autres. Il ne fonctionne pas actuellement sur mon atm et ne s'affiche pas lorsque j'exécute le code source. Quelqu'un a-t-il une idée? Voici une image pour aider à décrire le problème ... Plus de code à suivre si nécessaire. Example Image

+0

Si cela fonctionne pour certains, assurez-vous que les bits par pixel de l'image correspond à la bureau. Si la nature de l'image est telle qu'elle ne s'affiche pas clairement en raison des paramètres BPP, vous devrez peut-être vous assurer que c'est le cas. Vous avez besoin de faire quelques trucs pour cela .. avoir des images BPP diff, convertir l'image en format compatible, etc – Nayan

+0

Vous ne savez pas exactement ce que vous voulez dire sur ce point, Pouvez-vous essayer de clarifier un peu mieux? – Alex

+0

Vérifiez correctement le ImageList. Observez le champ TransparentColor. C'est utile quand une couleur est supposée être transparente. Ensuite, vérifiez si les images que vous avez ajoutées pour leurs valeurs 'PixelFormat'. Gardez les mêmes, si possible. Enfin, vérifiez le 'ColorDepth' de la liste d'images. Cela, idéalement, devrait correspondre au format de pixel des images. À mon avis, 24 et 32 ​​bits devraient être préférés. – Nayan

Répondre

3

Votre besoin d'une réponse a probablement long passé depuis, mais j'ai eu le même problème, et voici ma solution:

Réglage de la ImageKey ne fonctionne pas, mais le réglage de la ImageIndex ne provoque la icône pour afficher. J'ai fait un énumérateur qui a cartographié les icônes à leurs indices.

private enum TabIconCodes : int 
{ 
    Stopped = 1, 
    Running = 2, 
} 
unitTab.ImageIndex = (int)TabIconCodes.Stopped; 

Ceci n'est pas une solution idéale, mais cela fonctionne.

1

Hy! Une autre solution sur le même concept:

tabp.ImageIndex = ImageListTabpages.Images.IndexOfKey("ImageKey") 

Cela fonctionne pour moi.

0

Avant la mise en place du ImageKey pour PageTab TabControl du PageTab doit avoir ImageList fixer et PageTab doit être ajouté à la TabControl