2012-10-10 15 views
5

मैंने अपने एमडीआई बच्चे के लिए कस्टम सीमा बनाई है। MDI चाइल्ड प्रपत्र गुण:एमडीआई बच्चा केवल तब दिखाई देता है जब विंडोस्टेट अधिकतम

  • FormBorderStyle = कोई नहीं
  • Controlbox = झूठी
  • पाठ = ""
  • WindowState = अधिकतम

सबसे पहले, जब मैं Windowstate सेट की संपत्ति थी सामान्य करने के लिए, मेरा एमडीआई बच्चा अपरिपक्व नहीं होगा, मुझे लगता है कि इसका आकार 0; 0 है। मैंने फॉर्म_लोड विधि में आकार सेट करने का प्रयास किया, लेकिन अभी भी कुछ भी नहीं बदला। जब मैंने फॉर्मबॉर्डर स्टाइल को फिक्स्ड सिंगल में बदल दिया, तो मैं टाइटल बार को डबल-क्लिक करने के लिए पर्याप्त जगह के साथ बहुत छोटा फॉर्म देख सकता था। फिर फॉर्म वास्तव में अधिकतम।

मुझे अभी और समझ में नहीं आता है, यह सब बहुत भ्रमित है। और चूंकि windowstate बड़ा किया गया है मैं कार्यों का उपयोग नहीं कर सकते हैं स्क्रीन के चारों ओर प्रपत्र खींचें करने के लिए है, क्योंकि यह सोचता है कि यह अधिकतम है ....

enter image description here

+2

उन एक एमडीआई चाइल्ड विंडो के लिए मान्य गुण नहीं हैं, यह * चाहिए * एक आकार बदलने योग्य सीमा है। Winforms एक अपवाद फेंकना भूल जाता है। –

उत्तर

0

आप लिखा है "WindowState = अधिकतम"।
शायद इस वजह से आप केवल अपना एमडीआई फॉर्म देखते हैं जब मूल रूप को अधिकतम किया जाता है।
मुझे लगता है कि आप "विंडोस्टेट = सामान्य" लिखते हैं, और फॉर्म_लोड में "MDIForm.Size = parentForm.Size" लिखते हैं या (ऐसा कुछ)।

0

इस कोड का प्रयास करें - कार्य करने की गारंटी:

Public frmContainer As FormContainer 
Public frmChild As FormChild 

Public Sub OpenfrmChild() 
    If Not IsNothing(frmChild) AndAlso frmChild.Visible = False Then 'This applies after form has been closed 
     frmChild = Nothing '(frmChild does not test as nothing after being closed) 
     frmChild = New FormChild 
     frmChild.MdiParent = frmContainer 
     frmChild.Show() 
    ElseIf IsNothing(frmChild) Then 'This applies the first time form is opened 
     Try 
      frmChild = New FormChild 
      frmChild.MdiParent = frmContainer 
      frmChild.Show() 
     Catch ex As Exception 
      ErrorMsg(ex.Message() & "Description: " & ex.ToString) 
     End Try 
    Else 'This applies if form is visible and user clicks the button on FormChild again 
     frmChild.BringToFront() 
    End If 
    frmChild.WindowState = FormWindowState.Maximized 
    frmChild.Dock = DockStyle.Fill 
End Sub 
संबंधित मुद्दे