2013-02-18 23 views
6

मैं अपने WinForm आवेदन में DataGridView है आकार दिया जा रहा है औरSystem.InvalidOperationException: जबकि एक स्वतः भरण स्तंभ

this.dgvDte.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; 

सेट करते हैं, खुली अपने प्रोजेक्ट को चलाने के उस रूप कुछ समय नहीं बल्कि यह कार्रवाई नहीं की जा सकती मुझे हमेशा इस गलती

मिल "System.InvalidOperationException: इस आपरेशन नहीं किया जा सकता है, जबकि एक ऑटो से भरे स्तंभ का आकार बदला जा रहा है"

कोई भी शरीर मेरी मदद कर सकता है कि यह क्या होता है?

उत्तर

0

हो सकता है कि आप लोड होने के दौरान मूल्यों पर फिर से प्रयास कर रहे हों? अपने आवेदन को उन परिचालनों पर प्रतीक्षा या लॉक करने का प्रयास करें।

+0

में उत्तर दें क्या आप कुछ विवरण दे सकते हैं? – budaancamanyak

3

जैसा कि एमएस मंचों (by MS) पर बताया गया है, अपवाद डेटाग्रिड व्यू द्वारा फेंक दिया गया है। जहां तक ​​मैं यह कह सकता हूं तब जब नियंत्रण कर्सर प्रारंभ होता है तो माउस कर्सर डेटाग्रिडव्यू क्लाइंटफैंगल के अंदर होता है। एमएस हमें बताता है कि वे ("डिज़ाइन द्वारा") को अनुमति देते हैं कि कॉलम का आकार बदलता है और सेल एक ही समय में आग लगने के लिए आग लगने पर आग लगती है। सुझाए गए कामकाज ने मेरी समस्या को ठीक नहीं किया।

के बाद से एमएस इस समस्या को ठीक करने में रुचि होने के लिए नहीं लगता है, मैं ने पाया है, मेरे लिए, दो समाधान काम करते हैं:

  1. एक "सुरक्षित" स्थिति में यकीन है कि नए रूप को खोलता है बनाने के लिए, बस से बाहर माउस कर्सर के रास्ते
  2. जबकि फार्म के निर्माता

चलाता है एक स्थिति को बचाने के लिए ले जाने के mousecursor आप मिलता है और 'System.Windows.Forms.Cursor.Position' के माध्यम से वर्तमान माउस स्क्रीन स्थिति सेट कर सकते ।

हालांकि उपयोगकर्ता इनपुट के बिना माउस कर्सर को ले जाने की हमेशा सराहना नहीं की जाती है, अगर किसी अनुप्रयोग में लगातार किया जाता है, तो यह मेरे लिए सबसे स्वीकार्य विकल्प है।

इस कोड को मैं (InitializeComponent विधि के बाद) एक DataGridView युक्त फार्म के निर्माता में उपयोग करने के लिए

  Cursor.Position = this.PointToScreen(new Point(this.Width/2, -10)); 

यह कर्सर शीर्षक पट्टी में प्रपत्र पर केंद्रित डालता करते है। आपको यह सुनिश्चित करने के लिए कुछ जांच करनी पड़ सकती है कि आप कर्सर ऑफ-स्क्रीन नहीं ले जाते हैं।

मुझे उम्मीद है कि इससे आपको थोड़ा सा मदद मिल सकती है।

13

this.dataGridView1.ColumnHeadersHeightSizeModeAutoSize पर सेट है।

DataGridView बनाने, अगर माउस स्थिति जहां कॉलम शीर्षक डालना होगा, लेकिन DataGridView, CellEnter घटना को संभालने की कोशिश करेंगे और स्तंभों या कुछ और आकार बदलने के लिए प्रयास करते हैं, लेकिन अभी DataGridView अभी भी पैदा कर रही है पर अचानक है है।

परिणामस्वरूप, InvalidOperation फेंक दिया गया है।

ग्राहक प्रदान की परियोजना में, GridWrapper.cs फ़ाइल, के बाद InitializeComponent();

this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; 

निम्न पंक्ति डाल GridWrapper_Load विधि में निम्न पंक्ति रखो:

this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; 

कई

वर्कअराउंड निम्नलिखित के रूप में है ग्राहकों को forums में माइक्रोसॉफ्ट ए में इस तरह के मुद्दों पर चर्चा करने के लिए उपयोगी पाया गया है समुदाय के अन्य सदस्य आपके द्वारा लक्षित व्यवहार को प्राप्त करने के तरीकों की सिफारिश कर सकते हैं।

link

+0

यह स्वीकार्य उत्तर होना चाहिए; क्या हो रहा है के बारे में महान विवरण और स्पष्टीकरण। – sparkyShorts

+0

यह भी देखें http://stackoverflow.com/questions/34344499/invalidoperationex- यह- सहयोग- कैनोट-be-performed-while-an-auto- भरें –

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