एक बाध्यकारी जब DataGridView
बाध्यकारी स्रोत पर नियंत्रण, मुझे अपने आवेदन में निम्न त्रुटि मिल रही है:
ऑपरेशन मान्य नहीं है क्योंकि इसके परिणामस्वरूप SetCurrentCellAddressCore फ़ंक्शन पर पुनर्वित्त कॉल होता है
बाध्यकारी स्रोत डेटा तालिका पर निर्भर करता है। और मैं डेटाग्रिड व्यू से रिकॉर्ड फ़िल्टर कर रहा हूं। और मैंने इसका इस्तेमाल किया dataGridView1_CellValueChanged()
घटना जहां मैं DataGridView को फ़िल्टर कर रहा हूं। लेकिन जब मैं वर्तमान सेल से डेटा हटा रहा था, तो यह त्रुटि होती है।
मैं यह मुश्किल कैसे सुलझाऊँ?
उत्तर:
जवाब के लिए 2 9। 1अपवाद उठाया जाता है DataGridView
एक अनंत लूप होने से रोकने के लिए। इसका कारण आमतौर पर निम्न में से एक है:
- वर्तमान में सक्रिय सेल पर एक ऑपरेशन किया जा रहा है, जबकि सक्रिय सेल बदल रहा है
- एक सेल संपादन पहले से ही प्रगतिशील है, जबकि संपादन मोड की शुरुआत, समाप्ति या रद्द करना
- कोई अन्य ऑपरेशन जिसके परिणामस्वरूप सक्रिय सेल बदल रहा है
DataGridView
अभी भी इसका उपयोग कर रहा है
के लिए अपने हैंडलर पर एक नज़र डालें CellValueChanged
घटना और सुनिश्चित करें कि आप उपरोक्त में से कोई भी हैंडलर में नहीं कर रहे हैं।
जवाब के लिए 23 № 2
सहेजने के बाद डेटाग्रिड व्यू को रीफ्रेश करने का प्रयास करने की वजह से यह सबसे अधिक संभावना है। मेरा सुझाव है कि आप इसे कॉल करने के बजाय विधि का आह्वान करें।
BeginInvoke(new MethodInvoker(PopulateControl ));
जवाब के लिए 2 № 3
मैंने पाया कि यह अपवाद इसलिए हुआ क्योंकि मेरे पास मेरे कोड में एक खाली DataGridView.CellValidated सब था। एक बार जब मैंने उस खाली उप को हटा दिया तो त्रुटि दूर हो गई।
जवाब के लिए 0 № 4
डेटा में एक आवेदन डालें। DoEvents () डेटा GridView.RowEnter भी यह कर सकते हैं।
जवाब के लिए 0 № 5
यह बहुत समान है (और वही बात हो सकती हैलेकिन एक सेल संपादन के बिना)। कुछ भी जो एक ही थ्रेड के बाहर डेटाग्रिडव्यू के साथ किया जाता है जो नियंत्रण मौजूद है (घटना, पृष्ठभूमि कार्यकर्ता, एक और धागा ...) को लागू करने की आवश्यकता है। यहां समाधान पर पढ़ें।
https://stackoverflow.com/questions/44456465/datagridview-invalidoperationexception-reentrant-call-to-setcurrentcelladdressco?noredirect=1#comment75919793_44456465