2008-11-14 8 views
13

मेरे पास एक डाटाग्रिडव्यू के साथ एक जीत फ़ॉर्म (सी #) है। मैंने ग्रिड के डेटासोर्स को एक डाटाटेबल पर सेट किया है।DatagridView त्रुटि आइकन या त्रुटि पाठ प्रदर्शित नहीं कर रहा है?

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

क्या मैं सिर्फ त्रुटियों के प्रदर्शन के लिए बहुत अधिक उम्मीद कर रहा हूं और वे केवल ग्रिड में डेटा को संपादित करने के संदर्भ में दिखाते हैं?

मैं इस दिन एक दिन के लिए झुका रहा हूं और किसी ऐसे व्यक्ति की खोज की है जिसने कोई लाभ नहीं उठाया है - मदद!

उत्तर

-1

मेरा मानना ​​है कि त्रुटियां केवल संपादन पर ही दिखाई देंगी। आप जो कर सकते हैं वह आपके डेटाटेबल में एक बूल कॉलम जोड़ना है, जो डेटाग्रिड व्यू में एक छवि/कस्टम कॉलम का प्रदर्शन चलाता है, यह दर्शाता है कि कोई त्रुटि है या नहीं।

+1

आप किसी भी समय डेटा ग्रिड व्यू की पंक्ति पर त्रुटि टेक्स्ट सेट कर सकते हैं, और इसे आइकन प्रदर्शित करना चाहिए। –

8

जांचें कि AutoSizeRowsModeDataGridViewAutoSizeRowsMode.None पर सेट है। मैं ने पाया है कि पंक्ति Errortext पूर्वावलोकन आइकन प्रदर्शित नहीं किया जाता AutoSizeRowsMode कोई भी डिफ़ॉल्ट पर सेट नहीं है जब।

DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None 
+0

कोई फर्क नहीं पड़ता ... – Simon

+0

.NET 3.5 – Gnat

+1

के तहत मेरे लिए काम किया। मेरे लिए भी काम किया। बीटीडब्ल्यू, यहां एक [कनेक्ट पोस्ट] है (http://connect.microsoft.com/VisualStudio/feedback/details/115989/datagridview-errortext-is-not-displayed-properly) जिसमें एक वर्कअराउंड शामिल है जब आपको अभी भी AutoSizeRowsMode का उपयोग करने की आवश्यकता है – kman

8

यह मूल पोस्टर के लिए थोड़ी देर हो चुकी क्या यह मेरे लिए हल है, लेकिन यहाँ ...

पंक्ति की ऊँचाई की जाँच करें। यदि यह से कम है 1 9 यह आइकन नहीं खींचागा। यह समस्या देखने के लिए इसे थोड़ा अधिक सेट करने का प्रयास करें।

grid.RowTemplate.Height = 22 
4

यदि आप ई। कैंसल को सही पर सेट करते हैं तो आइकन प्रदर्शित नहीं होता है। कौन नहीं करता है उपयोगकर्ता जानते हैं कि एक समस्या यह है कि लाइन पर मौजूद है।

+0

... इस मामले में आपको कुछ ऐसा करना चाहिए [यह उत्तर] (http://stackoverflow.com/a/7714126/42961)। – damian

0

यदि कोई और अभी भी आजकल खोज रहा है: मेरे लिए काम किया गया समाधान डेटाग्रिड व्यू को डेटा स्रोत को फिर से असाइन करना था, और RowError गुण सेट करने के बाद ग्रिड पर रीफ्रेश विधि को कॉल करना था।

(VB.Net कोड :)

myDataGridView.DataSource = myDataSet.Tables(0) 
myDataGridView.Refresh() 

कि करने के बाद, नव सौंपा RowError के अंत में प्रदर्शित किया गया।

+1

मुझे सेल के त्रुटि टेक्स्ट को स्थापित करने के बाद मिला - मैं ग्रिड को अनजाने में फिर से पॉप्युलेट कर रहा था और इस प्रकार सभी त्रुटि टेक्स्ट साफ़ कर रहा था !!! इसके आधार पर ** को ठीक करना आसान था, लेकिन ** यह मुझे सोच रहा था कि ** आपका समाधान मेरी समस्या का कारण था **। –

4

DataGridView समय ErrorText संपत्ति सेट कर दिया जाता दिखाई देता हो गया है।

-1

भेजें एक ESC कीस्ट्रोक यह दिखाने के लिए मजबूर (कम से कम मेरे लिए काम किया) होगा

SendKeys.Send("{ESC}"); 
1

चेक dgv.ShowRowErrors संपत्ति।

0

एक और कारण त्रुटि आइकन है नहीं दिखा रहा है, यदि पंक्ति हेडर आकार बहुत छोटा है। डिफ़ॉल्ट रूप से, यह 46. किसी कारण से आप एक छोटे आकार के लिए पंक्ति हेडर सेट करते हैं, इस तरह के 30 के रूप में, त्रुटि आइकन प्रदर्शित नहीं होगा है।

-1

मैं इसी तरह की समस्या आ रही है जब

private void gridGrid_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) 

हैंडलर में उपयोगकर्ता इनपुट को मान्य। अमान्य इनपुट के मामले में समस्या e.Cancel=true सेट की गई थी।

1

आप उपयोग कर रहे हैं विजुअल स्टूडियो 2017 और अपने डेटा एक डेटा स्रोत के लिए बाध्य नहीं है, तो आप ErrorText इस तरह पंक्ति सेसेल पर सेट करने के लिए नहीं बल्कि, है:

gvwWebsites.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "You have already used that address."; 
संबंधित मुद्दे