2012-03-08 13 views
8

मेरे पास एक कैलेंडर है जिसमें एक कैलेंडर है जो छुपा हुआ है। मैं डेटाग्रिड व्यू के वर्तमान सेल के नीचे फॉर्म को दिखाना चाहता हूं। वर्तमान सेल की स्थिति के अनुसार स्थिति बदल जाती है।मैं DataGridView में वर्तमान सेल स्थिति x और y कैसे प्राप्त करूं?

मैं वर्तमान सेल या वर्तमान कॉलम नहीं चाहता, मुझे स्थिति चाहिए ताकि मैं अपने दिनांक रूपों का स्थान निर्धारित कर सकूं।

int po_X = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Left+paygrid.Left; 
int po_Y = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Bottom+paygrid.Top; 
form_date.Location = new System.Drawing.Point(po_X, po_Y); 

उत्तर

10

आप paygrid.PointToScreen() विधि का उपयोग कर सकते हैं:

यहाँ मैं क्या उपयोग कर रहा हूँ, लेकिन इसके काम नहीं कर रहा है।

form_date.Location = paygrid.PointToScreen(
    paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location); 
+0

धन्यवाद इतना much..it पूरी तरह से – user1231584

0

आप

[DllImport("user32.dll", EntryPoint = "GetCursorPos")] 
private static extern bool GetCursorPos(out Point lpPoint); 

और कॉल विधि का प्रयास के रूप में

Point pt; 
GetCursorPos(out pt); 

pt x और y प्रदान करेगा कर सकते हैं।

+0

धन्यवाद काम किया, लेकिन मैं न जीई करना चाहते हैं कर्सर की स्थिति मैं डेटाग्रिडव्यू में वर्तमान सेल की स्थिति चाहता हूं..और आपको पहले से ही अपने उत्तरविदों को watbywbarif – user1231584

1

आप इस की कोशिश करना चाहते हो सकता है:

Lookup_Account.Left = datagrid_setting.GetCellDisplayRectangle(colIndex, rowIndex, False).Left 
Lookup_Account.Top = datagrid_setting.GetCellDisplayRectangle(colIndex, rowIndex, False).Top 
+1

से मिल गया है StackOverflow में आपका स्वागत है! कृपया अपने कोड पर एक संक्षिप्त स्पष्टीकरण जोड़ें। यह क्यों और कैसे काम करता है? – Aurasphere

0
Rectangle cellRect = paygrid.GetCellDisplayRectangle(e.ColumnIndex, 
e.RowIndex, true); 

तो आप उपयोग कर सकते हैं:

cellRect.X - for X position, cellRect.Y - for Y position, 
cellRect.Width - for column width and cellRect.Height - for column height 
संबंधित मुद्दे