2009-03-12 13 views
15

के डिफ़ॉल्ट चयन को कैसे निकालें I WinForms उपयोगकर्ता नियंत्रण पर एक अल्ट्राग्रिड डाल दिया है। मैंने कुछ सेटिंग्स tweaked है, इसलिए मैं ग्रिड का उपयोग केवल पढ़ने-योग्य बहु-पंक्ति चयन तालिका के रूप में कर सकता हूं। लेकिन एक समस्या है: डिफ़ॉल्ट रूप से पहली पंक्ति का चयन किया प्रतीत होता है।इन्फ्राजिस्टिक्स अल्ट्राग्रिड: पहली पंक्ति

लेकिन Selected.Rows संपत्ति खाली है, और ActiveRow संपत्ति null है।

तो पंक्ति का चयन किया प्रतीत होता है, लेकिन वास्तव में यह नहीं है, जिससे चयन को हटाना असंभव हो जाता है।

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

धन्यवाद।

उत्तर

21

कुछ और अनुसंधान के बाद मैं एक समाधान है, जो मैं आप सभी के साथ साझा करेंगे पाया है:

myUltraGrid.DisplayLayout.Override.ActiveCellAppearance.Reset(); 
myUltraGrid.DisplayLayout.Override.ActiveRowAppearance.Reset(); 
+0

मेरे लिए या गियानी के लिए काम नहीं किया। और गियानी का दृष्टिकोण ListObject डेटा को उड़ा देता है। क्या आप कोई मदद दे सकते हैं क्यों यह काम नहीं कर सकता है? मैंने डिफ़ॉल्ट गुणों के साथ एक साधारण ग्रिड लिया और इसे बाध्य किया और फिर अनुशंसित 2 लाइनों का समर्थन किया। कोई परिवर्तन नहीं होता है। – ChadD

+0

यह मेरे लिए काम किया। आप में से उन लोगों के लिए एक समान समस्या के साथ, ध्यान रखें कि दो गुण हैं जिनकी पंक्ति हो सकती है: 'चयनित' और 'सक्रिय'। शून्य या अधिक पंक्तियों का चयन किया जा सकता है, लेकिन एक और केवल एक पंक्ति सक्रिय है। दुर्भाग्यवश, एक चयनित पंक्ति और सक्रिय पंक्ति दोनों (डिफ़ॉल्ट रूप से) एक ही तरीके से हाइलाइट की गई हैं। सक्रिय पंक्ति पंक्ति शीर्षलेख में त्रिकोण द्वारा भी इंगित की जाती है (यदि आपके पास पंक्ति शीर्षलेख सक्षम हैं।) ActiveRowAppearance.Reset() कॉल सक्रिय पंक्ति को हाइलाइट करने के लिए अल्ट्राग्रिड को बताती है। उम्मीद है की यह मदद करेगा। – AlfredBr

3

मैं exactely एक ही समस्या आप था है, लेकिन Gerrie Schenck के समाधान मेरे लिए काम नहीं करते । मैंने इस चाल का उपयोग किया: MyUltraGrid.ActiveRow = MyUltraGrid.Rows [0]; MyUltraGrid.ActiveRow = शून्य;

+0

यह पंक्ति 0 के लिए ListObject डेटा को उड़ाता है। – ChadD

1

किसी भी तरह ऊपर सूचीबद्ध समाधानों में से कोई भी मेरे लिए काम नहीं करता है। मेरे मामले में मैं बस सक्रियण/चयन नहीं करना चाहता था। तो मैंने निम्नलिखित किया। यह सबसे अच्छा समाधान नहीं हो सकता है, लेकिन यह काम करता है।

private void LayoutVisulizerUltraGrid_AfterRowActivate(object sender, EventArgs e) 
    { 
     LayoutVisulizerUltraGrid.ActiveRow = null; 
    } 
3

इस प्रयास करें:

this.ultraGrid1.SyncWithCurrencyManager = false; 
this.ultraGrid1.DisplayLayout.Override.RowSelectors=DefaultableBoolean.False; 
+1

धन्यवाद। यह मुझे पागल कर रहा था। – Keith

+0

धन्यवाद, वाह यह इतना अस्पष्ट है। – Mangist

3

यह मैं एक ग्रिड की "सक्रिय प्रकटन" दबाने में मदद की:

grid.DisplayLayout.Override.ActiveAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False; 

आप भी नहीं करना चाहते हैं एक पंक्ति चिह्नित किया जाना चयनित के रूप में, आपको "चयनित उपस्थिति" के लिए ऐसा करना होगा:

grid.DisplayLayout.Override.SelectedAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False; 
0

चयनित पंक्ति को पूरी तरह से अक्षम करें, फिर ActiveRow को शून्य पर चयन को साफ़ करना चाहिए।

grid.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.None; 
2

चयनित और सक्रिय के बीच अंतर करना महत्वपूर्ण है। ग्रिड स्वचालित रूप से किसी भी पंक्तियों का चयन नहीं करता है जो आप देख रहे हैं वह ActiveRow है, जो चयनित पंक्तियों की तरह एक हाइलाइट के साथ प्रदर्शित होता है।

ग्रिड का ActiveRow CurrencyManager के साथ सिंक हो गया है, इसलिए डिफ़ॉल्ट रूप से ग्रिड की पहली पंक्ति हाइलाइट दिखाई देती है। ActiveRowAppearance और ActiveCellAppearance को रीसेट करने से ActiveRow से डिफ़ॉल्ट हाइलाइट हटा दिया जाएगा।

 this.ultraGrid1.DisplayLayout.Override.ActiveCellAppearance.Reset(); 
     this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.Reset(); 

लेकिन यह ध्यान रखें कि यह सक्रिय पंक्ति बनने से पंक्ति को नहीं रोकता है महत्वपूर्ण है, यह सिर्फ ग्रिड अब सक्रिय नहीं पंक्ति को हाइलाइट करता है। चूंकि पंक्ति अभी भी सक्रिय है (और इसे रोकने के लिए कोई रास्ता नहीं है) सक्रिय पंक्ति पर प्रकाश डालने वाली कोई भी चीज़ अभी भी पंक्ति को हाइलाइट करेगी। उदाहरण के लिए यदि आप अपने एप्लिकेशन में स्टाइल लाइब्रेरी (* .isl) फ़ाइल लोड करते हैं जो ActiveRow पर एक शैली लागू करता है, तो यह अभी भी प्रदर्शित होगा।

आप एक अधिक गहन तरीके से सक्रिय पंक्ति उपस्थिति निष्क्रिय करने के लिए, पूरी तरह से सभी गुण सेटिंग और शैली लाइब्रेरी सेटिंग्स अनदेखी चाहते हैं, आप ऐसा कर सकते हैं:

this.ultraGrid1.DisplayLayout.Override.ActiveAppearancesEnabled = Infragistics.Win.DefaultableBoolean.False; 

ध्यान दें कि यह संपत्ति v9 में जोड़ा गया है। 2 और पुराने संस्करणों में मौजूद नहीं है।

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