2008-09-24 18 views
5

नोड छवियों को प्रदर्शित करने के लिए TreeView नियंत्रण प्राप्त करने में समस्या होने पर। नीचे दिया गया कोड कभी-कभी काम करता है लेकिन दूसरी बार किसी भी छवि को दिखाने में विफल रहता है।.NET TreeView छवियों को प्रदर्शित नहीं करेगा


private TreeNode AddNodeForCore(TreeNode root, Core c) { 
    string key = GetImageKey(c); 
    TreeNode t = root.Nodes.Add(c.Name, c.Name, key, key); 
    t.Tag = c; 
    return t; 
} 

ध्यान दें कि जब यह विफल हो जाता है, तो TreeView किसी भी नोड के लिए किसी भी छवि को दिखाने में विफल रहता है। TreeView में एक छविसूची सौंपी गई है, और छवि कुंजी निश्चित रूप से छवि संग्रह में है।

संपादित करें:
मेरा google-fu कमजोर है। विश्वास नहीं कर सकता कि मुझे वह जवाब नहीं मिला।

उत्तर

8

ऊपर Googled पदों की उपयोगी बिट वास्तव में है:।

"यह Windows XP दृश्य शैलियों कार्यान्वयन में एक ज्ञात बग है कुछ नियंत्रण, ImageList की तरह, ठीक से प्रारंभ नहीं मिलता, जब वे ' एप्लिकेशन ऐप कॉल करने से पहले बनाया गया है। सक्षम VisualStyles()। सी # के प्रोग्राम.c में सामान्य मुख्य() कार्यान्वयन इससे बचाता है। वापस पोस्ट करने के लिए धन्यवाद! "

तो मूल रूप से, गारंटी दें कि एप्लिकेशन। सक्षम VisualStyles() को आपके इमेजलिस्ट को शुरू करने से पहले बुलाया जाता है।

+0

आह, आप सही हैं। यह वास्तव में और अधिक दिलचस्प तथ्य है। – VVS

2

एक त्वरित गूगल खोज इस जवाब मिला: फार्म TreeView युक्त के रूप में नीचे, माउस ऐड-इन स्टार्टअप समारोह में instantiated है, तो

: उस पृष्ठ से http://forums.microsoft.com/MSDN/ShowPost.aspx?siteid=1&PostID=965968

उद्धरण दिखाई देते हैं!

public partial class ThisApplication 
{ 
    Form1 frm; 

    private void ThisApplication_Startup(object sender, System.EventArgs e) 
    { 
     frm = new Form1(); 
     frm.Show(); 

    } 

लेकिन, अगर वर्ग, जैसा कि नीचे के साथ instantiated:

public partial class ThisApplication 
{ 
    Form1 frm = new Form1(); 


    private void ThisApplication_Startup(object sender, System.EventArgs e) 
    { 
        frm.Show(); 

    } 

तब वे दिखाई नहीं देते। इसके अलावा, अगर "विजुअल स्टाइल" (एक्सपी के साथ नया) अक्षम है, तो आइकन दोनों उदाहरणों में काम करते हैं।

1

[विधि जोड़ें अनुभाग] के अनुसार (http://msdn.microsoft.com/en-us/library/ydx6whxs(VS.80).aspx) MSDN लाइब्रेरी में, आप, दोनों TreeView.ImageList और TreeView.SelectedImageList चौथा तर्क के बाद से दूसरी सूची को संदर्भित करता है भरने की जरूरत है।

इस बग यदि ऐसा होता है जब आप एक नोड का चयन तो स्थान है।

0

समाधान "Application.EnableVisualStyles के बीच कॉल Application.DoEvents()() और Application.Run()" Yossarian है और न ही लोकप्रिय द्वारा पोस्ट की बहुत घिसटते के बाद मेरे लिए काम किया।

, पीसना दांतों, और गूगलिंग, समाधान पोस्ट किया गया Addy Santo द्वारा चाल चल रही थी।

संबंधित मुद्दे