2011-03-01 44 views
7

विंडोज फॉर्म पर मेरे पास DataGridView डेटा स्रोत (डेटा बाध्यकारी) से भरे रिकॉर्ड्स के साथ नियंत्रण है। प्रत्येक रिकॉर्ड एक डेटा ऑब्जेक्ट प्रस्तुत करता है।डेटाग्रिड व्यू नियंत्रण शीर्ष पर शीर्ष पर जाने के लिए

सभी पंक्तियां प्रदर्शित नहीं हो रही हैं: उदाहरण के लिए केवल पहले 10। तो उपयोगकर्ता एक और रिकॉर्ड देखने के लिए नीचे स्क्रॉल कर सकते हैं। इसके बारे में कुछ खास नहीं है।

लेकिन एक उपयोगकर्ता स्क्रॉल, पंक्ति की वस्तु की डेटा गुण बदल रहा है के बाद एक पंक्ति पर क्लिक करता है जब और इस DataGridViewand ताज़ा करता है - यह datagrid के शीर्ष पर "स्क्रॉल" (शायद पूरे DataGridView ताज़ा है)। यह वांछनीय नहीं है।

मैं रिकॉर्ड अपडेट के दौरान वर्तमान स्क्रॉल स्थिति कैसे रख सकता हूं?

उत्तर

7

आप डेटाग्रिड व्यू की FirstDisplayedScrollingRowIndex संपत्ति का उपयोग कर सकते हैं।

यह आपके डीजीवी पर प्रदर्शित पहली पंक्ति के सूचकांक को प्राप्त/सेट करता है।

इस तरह यह प्रयोग करें:

 int rowIndex = dataGridView.FirstDisplayedScrollingRowIndex; 

     // Refresh your DGV. 

     dataGridView.FirstDisplayedScrollingRowIndex = rowIndex; 

बेशक यह काम नहीं करेगा बहुत सही है, तो तरह या जोड़ें/अपने DGV के लिए पंक्तियों को हटाने (आप कहते हैं कि आप तो हो सकता है आप ठीक कर रहे हैं अद्यतन करने गए थे)।

+0

हाय जय। यह काम। पारितोषिक के लिए धन्यवाद। – robertpnl

+0

मुझे एक ही समस्या थी। मैंने पाया कि यह मेरे डेटासोर्स पर AcceptChanges() को कॉल करता है जो ऐसा करता है, इसलिए मैंने कॉल से पहले FirstDisplayedScrollingRowIndex के मान को सहेजकर इसे बाद में बहाल करके इसे ठीक कर दिया। – JonP

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