2015-06-11 12 views
5

लंबी कहानी छोटी है, मेरे पास यह डेटा है GridView और मैं ग्रिड के निचले बाएं कोने पर सेल [0,0] सेल होना चाहता हूं, ग्रिड के ऊपरी-बाएं भाग पर डिफ़ॉल्ट रूप से नहीं करता है।विंडोज फॉर्म: डेटा ग्रिडव्यू का पहला सेल मूल बदलें?

उदाहरण के लिए, नेत्रहीन, अगर मैं कुछ ऐसा कार्य करें:

dataGridView1[0, 0].Value = "a"; 

I get this (sorry not enough reputation to post pictures)

लेकिन मैं चाहता हूँ, "एक" प्रकट करने के लिए एक ही अनुदेश करके, नीले पर स्लॉट पर प्रकाश डाला, और एक पंक्ति जोड़ने जैसे सामान करके इसे ग्रिड के शीर्ष पर जोड़ा जाएगा।

अग्रिम में बहुत धन्यवाद और का संबंध

+0

के रूप में इस्तेमाल किया जा सकता एक नहीं बहुत अच्छी तरह से सोचा के माध्यम से की तरह लगता है विचार। यदि आप मोर्चे पर जोड़ना चाहते हैं तो बस एक सम्मिलित करें! – TaW

उत्तर

4

इस तरह एक वर्ग बनाएँ:

public class MyDataGridView : DataGridView 
{ 
    public new DataGridViewCell this[int col, int invertRow] 
    { 
     get 
     { 
      int recordCount = this.RowCount - (this.AllowUserToAddRows ? 2 : 1); 
      return this.Rows[recordCount - invertRow].Cells[col]; 
     } 
     set 
     { 
      int recordCount = this.RowCount - (this.AllowUserToAddRows ? 2 : 1); 
      this.Rows[recordCount - invertRow].Cells[col] = value; 
     } 
    } 
} 

और फोन है कि इस तरह:

dataGridView1[0, 0].Value = "a"; 

या यदि आप सेट या में पहला कक्ष प्राप्त करना चाहते हैं केवल ग्रिड के ऊपरी बाएं तो आप FirstDisplayedCell संपत्ति का उपयोग कर सकते हैं।

एमएसडीएन: वर्तमान में डेटाग्रिड व्यू में प्रदर्शित पहला सेल प्राप्त या सेट करता है; आमतौर पर, यह सेल ऊपरी बाएं कोने में है।

उदाहरण के लिए:

dataGridView1.FirstDisplayedCell.Value = "a"; 
+0

जो कुछ करता है वह पंक्ति और कॉलम इंडेक्स को स्वैप करता है ... – helrich

+0

हे भगवान, मुझे क्षमा करें मुझे लगता है कि वह किसी भी इंडेक्स को लेना चाहता है! मैं जल्द ही – Behzad

+0

के रूप में तय किया गया मैं पंक्ति सूचकांक inverting द्वारा तय किया गया। – Behzad

4

कक्षा के विस्तार के बिना आप क्या चाहते हैं करने के लिए कोई देशी तरीका है, लेकिन आप विस्तार तरीकों कि आप के लिए पंक्ति सूचकांक को उलटने का उपयोग कर सकते हैं:

public static DataGridViewCell FromLowerLeft(this DataGridView dgv, int columnIndex, int invertedRowIndex) 
{ 
    return dgv[columnIndex, dgv.RowCount - invertedRowIndex]; 
} 

यह

dataGridView.FromLowerLeft(0,0).Value = "a"; 
संबंधित मुद्दे