2011-06-06 10 views
6

पर्यावरण

  • Windows XP x32 विजुअल स्टूडियो 2005 मानक संस्करण
  • हनीवेल डॉल्फिन 9500 Windows Mobile 2003 (पॉकेट पीसी 2003) चल बारकोड स्कैनर और बी & डब्ल्यू कैमरा में बनाया उनके एसडीके स्थित here का उपयोग के साथ।
  • NET कम्पैक्ट फ्रेमवर्क 1.0 SP3 और .NET फ्रेमवर्क 1.1
  • कुलपति # का उपयोग करना

लक्ष्य

मैं CheckBoxes = true और View = Details एक फार्म पर के साथ एक ListView नियंत्रण है, लेकिन मैं नहीं करना चाहती उपयोगकर्ता द्वारा "चेक करने योग्य" होने के लिए चेक बॉक्स चेक करें। मैं इसे रिकॉर्ड पूरा होने के स्टेटस डिस्प्ले के लिए उपयोग कर रहा हूं। हालांकि, मैं कोड के माध्यम से बॉक्स को चेक करने के लिए इवेंट हैंडलर फ़ंक्शन का उपयोग करना चाहता हूं (यानी रिकॉर्ड पूर्ण होने पर: lvMeters_ItemCheck(null, null);)।पंक्ति चयन पर "चेकिंग" से चेक बॉक्स के साथ मैं सी # सूचीदृश्य नियंत्रण कैसे रख सकता हूं?

समस्या

मैं बॉक्स ही जाँच निष्क्रिय कर दिया है (मुझे लगता है, टच स्क्रीन इस डिवाइस पर असली सटीक नहीं है)। हालांकि, एक पंक्ति का चयन करते समय (मेरे पास FullRowSelect = true है), नियंत्रण अक्सर चेकबॉक्स की जांच करता है और ईवेंट हैंडलर को कॉल नहीं किया जा रहा प्रतीत होता है।

चीजें मैं

की कोशिश की है मैं मूल रूप से ईवेंट हैंडलर में कार्रवाई को वापस करने की कोशिश की:

private void lvMeters_ItemCheck(object sender, ItemCheckEventArgs e) 
{ 
    if (sender is ListView) 
    { 
     if (e.CurrentValue == CheckState.Checked) 
      lvMeters.Items[e.Index].Checked = true; 
     else 
      lvMeters.Items[e.Index].Checked = false; 
    } 
    else if (e.CurrentValue == CheckState.Checked) 
     lvMeters.Items[e.Index].Checked = false; 
    else 
     lvMeters.Items[e.Index].Checked = true; 
} 

समस्या ऊपर हैंडलर चयन सूचीदृश्य पर बुलाया नहीं प्राप्त करता है, और न ही चयनित इटैम चेंज इवेंट हैंडलर इस इवेंट हैंडलर को कॉल करता है लेकिन यह अभी भी चयन पर बॉक्स को चेक कर रहा है। बॉक्स को स्वयं जांचते समय इसे कॉल किया जाता है।

अतिरिक्त जानकारी की आवश्यकता है?

पूछें और मैं अपनी पूरी कोशिश करूंगा!

मैं एक नौसिखिया

तो मुझे बताने की मैं यह पूरी तरह से गलत कर रहा हूँ में संकोच न करें और अलग ढंग से पूरे बात करना चाहिए।

+2

के लिए +1 एक बहुत अच्छी तरह से स्वरूपित/प्रश्न – ctacke

उत्तर

0

श्वास ... मैं किसी भी तरह से डिजाइनर के साथ उलझन में नियंत्रण से ईवेंट हैंडलर को हटाने में कामयाब रहा। मैंने कुछ बिंदु पर जांच की और यह अभी भी वहां था लेकिन उस समय मुझे वास्तव में एक तर्क/कोड समस्या थी।

अपने जवाब के लिए धन्यवाद:/

0

मैं कॉम्पैक्ट फ्रेमवर्क पर ListView की सीमा से परिचित नहीं हूं, लेकिन मानक ढांचे पर, आप TreeNode.StateImageIndex संपत्ति का उपयोग कर सकते हैं। अनचेक/चेक किए गए राज्य वास्तव में मानक विनफॉर्म कोड में एम्बेडेड छोटी छवियों का उपयोग कर रहे हैं (यदि मुझे सही याद है, तो वे इंडेक्स 1 और 2 हैं)। तो, उदाहरण के लिए, यदि आप ऐसा करते हैं:

private void lvMeters_ItemCheck(object sender, ItemCheckEventArgs e) 
{ 
    e.Item.StateImageIndex = 3; 
} 

यह छोटा आइकन बदल देगा और इसे कुछ भी नहीं सेट करेगा। आप ListView ImageList का भी उपयोग कर सकते हैं।

+0

समस्या यह है कि मेरी lvMeters_ItemCheck ईवेंट हैंडलर समारोह जब तक कि मैं स्पष्ट रूप से प्रत्येक के चेक बॉक्स भाग पर क्लिक नहीं बुलाया जा रहा है है बाहर सोचा ListView में आइटम। यदि मैं किसी अन्य कॉलम में आइटम के किसी हिस्से पर क्लिक करता हूं, तो यह हैंडलर को कॉल नहीं करता है लेकिन अक्सर बॉक्स को चेक करेगा। –

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