2008-11-12 7 views
28

मैं कॉलम के साथ सूची के रूप में DataGridView नियंत्रण का उपयोग करना चाहता हूं। विवरण मोड में ListView की तरह सॉर्ट करें लेकिन मैं DataGridView लचीलापन रखना चाहता हूं।डेटाग्रिड व्यू: एक सेल की बजाय पूरी पंक्ति को कैसे ध्यान केंद्रित करें?

ListView (साथ विवरण देख सकते हैं और FullRowSelect सक्षम) पूरी लाइन पर प्रकाश डाला गया और पूरे रेखा के आसपास फोकस निशान दिखाता है:
selected row in ListView control

DataGridView (साथ SelectionMode = FullRowSelect) केवल एक ही सेल के आसपास फ़ोकस चिह्न प्रदर्शित करता है:
selected row in DataGridView

तो, क्या किसी को DataGridView पंक्ति चयन को ListView जैसा दिखने के लिए कुछ (आदर्श) आसान तरीका पता है?
मैं नियंत्रण के बदले व्यवहार की तलाश नहीं कर रहा हूं - मैं केवल इसे देखना चाहता हूं।
आदर्श रूप से, वास्तविक चित्रकला करने वाले तरीकों से गड़बड़ किए बिना।

उत्तर

40

इस कोड को या तो अपने फॉर्म के कन्स्ट्रक्टर में रखें या इसे आईडीएजी का उपयोग करके डेटाग्रिडव्यू के गुण पर सेट करें।

dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
dgv.MultiSelect = false; 
dgv.RowPrePaint +=new DataGridViewRowPrePaintEventHandler(dgv_RowPrePaint); 

तब प्रपत्र कोड में निम्न इवेंट पेस्ट:

private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) 
{ 
    e.PaintParts &= ~DataGridViewPaintParts.Focus; 
} 

और यह काम करता है! :-)

"DGV" सवाल में DataGridView और "फार्म" है फार्म है कि यह होता है।

ध्यान दें, कि यह आत्मा पूरी पंक्ति के चारों ओर बिंदीदार आयताकार प्रदर्शित नहीं करती है। इसके बजाए, यह फोकस डॉट्स को पूरी तरह से हटा देता है।

16

कैसे

के बारे में
SelectionMode == FullRowSelect 

और

ReadOnly == true 

यह मेरे लिए काम करता है।

+0

अच्छा सर मदद के लिए धन्यवाद –

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