मेरे पास डेटाग्रिड व्यू है, जो केवल पढ़ने के लिए सेट नहीं है। इसके किसी भी कॉलम को केवल पढ़ने के लिए सेट नहीं किया गया है, और जिस वस्तु को बाध्य किया गया है वह केवल पढ़ने के लिए सेट नहीं है। फिर भी, मैं DataGridView आइटम संपादित नहीं कर सकता? DataGridView की DataSource प्रॉपर्टी को ReadOnlyCollection <> पर सेट किया गया है, लेकिन मैं केवल यूआई से नहीं, तत्वों को प्रोग्रामेटिक रूप से बदल सकता हूं। क्या चल रहा है?मैं अपने डेटाग्रिड व्यू में मान क्यों संपादित नहीं कर सकता, भले ही यह केवल पढ़ने के लिए सेट न हो?
उत्तर
यह पता चला है कि यदि आपका डेटाग्रिड व्यू रीडऑनली कोलेक्शन से जुड़ा हुआ है, तो भले ही आप संग्रह में किसी भी आइटम को प्रोग्रामिक रूप से संपादित कर सकें, डेटाग्रिड व्यू आपको मूल्यों को बदलने से प्रतिबंधित कर देगा। मुझे यकीन नहीं है कि यह व्यवहार जानबूझकर है, लेकिन इसके लिए कुछ देखना है।
पुन: पेश नहीं कर सकता ... नीचे देखें। ReadOnlyCollection के साथ <> कोई भी संपादन योग्य नहीं है ... –
मेरा बुरा, यह पता चला है कि "एक कॉलम जिसे बदला जा सकता है" वास्तव में सभी डेटासेट के साथ सही ढंग से बाध्य नहीं था। – GWLlosa
+1 मेरी इच्छा है कि मैंने सुबह सुबह एसओ खोजा था। इससे पहले कि मैंने इसे समझ लिया, इससे पहले मुझे दीवार के खिलाफ अपने सिर को टक्कर देने का घंटों लगा। – Rytmis
"डेटाग्रिड व्यू आपको कुछ मूल्यों (तारों) को बदलने से प्रतिबंधित करेगा लेकिन अन्य मूल्यों (बूल)" बिंदु से नहीं, बल्कि यह एक विस्तारित टिप्पणी (इसलिए विकी) है। न तो संपादन योग्य है; यह एक List<T>
और दोनों संपादित किए जाने योग्य बनाने के ...:
using System;
using System.Collections.ObjectModel;
using System.Windows.Forms;
class Test
{
public string Foo { get; set; }
public bool Bar { get; set; }
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
var data = new ReadOnlyCollection<Test>(
new[] {
new Test {Foo="abc", Bar=true},
new Test {Foo="def", Bar=false},
new Test {Foo="ghi", Bar=true},
new Test {Foo="jkl", Bar=false},
});
Application.Run(
new Form {
Text = "ReadOnlyCollection test",
Controls = {
new DataGridView {
Dock = DockStyle.Fill,
DataSource = data,
ReadOnly = false
}
}
});
}
}
हूप्स। यह पता चला है कि "एक संपादन योग्य कॉलम" वास्तव में डेटाबेस कोड में एक टाइपो था, इसलिए यह वास्तव में "एक संपादन योग्य कॉलम था जो वास्तव में पूरे समय डेटा स्रोत से बंधे नहीं था।" – GWLlosa
आप अपने DataGridView के लिए बाध्य कर रहे हैं? एक बात यह है कि यदि आप किसी डेटाबेस से पूछे गए डेटासोर्स के रूप में एक लिंक सूची का उपयोग कर रहे हैं और आपके पास पूर्ण ऑब्जेक्ट नहीं है, तो गुण तब तक पढ़े जाते हैं जब तक आप चयन फ़ंक्शन में "नया" निर्दिष्ट नहीं करते हैं। आपकी पोस्ट में बहुत सारी जानकारी नहीं है। आशा है कि ये आपकी मदद करेगा।
datagridview
काम ले लो और फिर set the column Read Only Property to False
मैं सिर्फ कल वी.एस. 2013 स्थापित, नवीनतम निर्माण (अद्यतन 5) और एक बग अभी भी बना हुआ है कि व्यवहार आपके द्वारा बताई का कारण बनता है संपादित कॉलम पर क्लिक करें।
बग के आसपास काम करने के लिए संक्षेप में, पहले सुनिश्चित करें कि डेटाग्रिडव्यू GUI- संपादन योग्य होने के लिए सेट है। इसमें विशेष रूप से नियंत्रण के ऊपरी दाएं भाग में फॉर्म डिजाइनर में छोटे तीर शामिल हैं। तीर ड्रॉप डाउन में एक विकल्प "संपादन सक्षम करें" है, यह सुनिश्चित करें कि यह सक्षम है। अब फॉर्म डिज़ाइनर में कॉलम को कुछ प्रमुख तरीके से संपादित करें (जैसे कॉलम जोड़ें या निकालें)। यही वह है, जब आप प्रोग्राम चलाते हैं तो आपको पता होना चाहिए कि जीयूआई संपादन अब काम कर रहा है।
इस बग को पुन: पेश करने के लिए, फॉर्म डिज़ाइनर के भीतर डेटाग्रिडव्यू नियंत्रण के ऊपरी दाएं भाग पर छोटे तीर का उपयोग करें, जिसे "संपादन सक्षम करें" को गलत पर सेट करने के लिए उपयोग किया जाता है। अब कॉलम में एक बड़ा बदलाव करें (जैसे कॉलम जोड़ें या निकालें)। प्रोग्राम संकलित करें और चलाएं। अब छोटे तीर पर वापस जाएं और "संपादन सक्षम करें" चेकबॉक्स को पुनः सक्षम करें। कार्यक्रम फिर से चलाएं। इस बिंदु पर बग खुद को प्रकट करता है, और आप पाएंगे कि डेटाग्रिडव्यू GUI- संपादन योग्य नहीं है भले ही आपने अन्यथा VS में कॉन्फ़िगर किया हो।
- 1. एक ही डेटाग्रिड व्यू कॉलम
- 2. केवल पढ़ने के लिए दृश्य संपादित करें
- 3. डेटाग्रिड व्यू केवल कोशिकाओं को पढ़ता है
- 4. मैं ऐसी विधि को क्यों संपादित नहीं कर सकता जिसमें डीबगर में अज्ञात विधि हो?
- 5. मैं अपने वेक्टर में 1,000,000,000 क्यों आरक्षित नहीं कर सकता?
- 6. डेटाग्रिड व्यू
- 7. रेल फ़ील्ड "रिक्त नहीं हो सकता", भले ही यह खाली नहीं है
- 8. मैं एस्टेरिस्क के लिए अपनी लिनक्स सेवा में पर्यावरण चर सेट कैसे कर सकता हूं, भले ही इसमें वास्तविक उपयोगकर्ता न हो?
- 9. मैं डिजाइनर में QStackedWidget में किसी पृष्ठ के लिए लेआउट क्यों सेट नहीं कर सकता?
- 10. रेल सत्यापन को संख्यात्मकता की आवश्यकता होती है, भले ही उपस्थिति सत्य पर सेट न हो
- 11. क्या मैं अनबाउंड डेटाग्रिड व्यू
- 12. संपादन मोड में डेटाग्रिड व्यू में कॉम्बोबॉक्स
- 13. यह हाइबरनेट MySQL कनेक्शन केवल पढ़ने के लिए क्यों है?
- 14. डेटाग्रिड व्यू कॉलम नाम संपादित करें
- 15. डेटाग्रिड व्यू सेल संरेखण काम नहीं करेगा
- 16. मैं डेटाग्रिड व्यू पंक्ति मान कैसे प्राप्त कर सकता हूं और चर में स्टोर कर सकता हूं?
- 17. डेटाग्रिड व्यू
- 18. डेटाग्रिड व्यू में हाइपरलिंक
- 19. वाईफ़ाई सक्षम करें (भले ही यह कनेक्ट हो) चाहे
- 20. ओओपी भाषाओं में 'केवल पढ़ने' पहुंच संशोधक क्यों नहीं है?
- 21. एसक्यूएल सर्वर विश्लेषण सेवाओं से कनेक्ट नहीं हो सकता है, भले ही यह
- 22. डेटाग्रिड व्यू
- 23. विम: "gq" हार्ड-लपेट टिप्पणियों के लिए कमांड, लेकिन कोड नहीं (भले ही कोई खाली रेखा न हो)
- 24. डेटाग्रिड व्यू
- 25. MYSQL टाइमस्टैम्प कॉलम ऑटो अपडेट, भले ही कोई बदलाव न हो?
- 26. मैं अपने मूल डेटा इकाई की विशेषता के बूलियन मान को अपडेट क्यों नहीं कर सकता?
- 27. डेटाग्रिड व्यू में सेल मान बदलने पर निगरानी कैसे करें?
- 28. मैं पायथन में वैश्विक चर सेट क्यों नहीं कर सकता?
- 29. क्यों सी # में केवल पढ़ने के लिए उपयोग करें
- 30. "आधार" खराब अभ्यास का उपयोग कर रहा है भले ही यह पठनीयता के लिए अच्छा हो सकता है?
आप तत्वों को संपादित करने का प्रयास कैसे कर रहे हैं? ऐसे व्यवहार क्या हैं जो आपको लगता है कि आपको देखना चाहिए कि आप नहीं देखते हैं? – David