2008-10-31 11 views
5

मुझे कुछ समस्या है। मेरे पास मूल रूप में एक डाटाटेबल है। मैं एक संवाद बॉक्स खोलता हूं जो डेटाटेबल संपत्ति प्राप्त करता है और चेकबॉक्स सूची बनाता है। इसका उपयोग उन कॉलम को निर्यात करने के लिए किया जाएगा। लेकिन जब मैं एप्लिकेशन चलाता हूं तो पैरेंटफॉर्म प्रॉपर्टी शून्य होती है। मैंने इसे पैरेंट और डायलॉगबॉक्स फॉर्म में सेट करने का प्रयास किया है (मुझे लगता है कि अगर ShowDialog() को कॉल किया गया था तो यह स्वचालित रूप से किया गया होगा)।विंडोज फॉर्म, मूल रूप से संपत्ति प्राप्त करना

कोई व्यक्ति देख सकता है और देख सकता है कि मैं कहां गलत हो रहा हूं? dialogbox से:

frmParent MyParentForm = (frmParent)this.ParentForm; 
for (int i=0; i<MyParentForm.DataGridTable.Count; i++) 
{ 
    chkListExportItems.Add(MyParentForm.DataGrid.Columns[i].Name,true); 
} 

माता पिता रूप से:

frmExports MyForm = new frmExports(); 
MyForm.MdiParent = this; 
if (MyForm.ShowDialog == DialogResult.OK) 
{ 
    MyForm.SelectedItems // Do something 
} 

उत्तर

3

अपने dialogbox फार्म के लिए DataGridTable के लिए एक संदर्भ दे। आप इसे कन्स्ट्रक्टर में पास कर सकते हैं। आपको माता-पिता/अभिभावक का उपयोग करने से बचने और कास्टिंग से बचने चाहिए।

3

1) "MdiParent" उपयोग करने के लिए गलत संपत्ति है।

2) MyForm.ShowDialog (यह) पर कॉल करें;

3) मोडल रूप में "this.Owner" का उपयोग करें।

+0

क्या आप इसे उदाहरण के साथ विस्तृत कर सकते हैं? –

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