2012-04-26 20 views
5

फार्म एक DataGridView के रूप में मुख्य घटक (यह आकार में अधिकांश लेना चाहिए) है, लेकिन वहाँ अन्य घटक हैं। उन्हें विभाजित करने के लिए एक क्षैतिज विभाजित कंटेनर है, लेकिन मैं सोच रहा था कि शीर्ष पैनल को अपनी सामग्री में कैसे आकार देना है। image1 http://www.mediafire.com/conv/8d141b69c63b0d3ac8aebf9129bb77e25ee4a75086cfa6595c4510041fda1fa66g.jpg image2 http://www.mediafire.com/conv/56d959d2a9f99b71af16f7ab3eb5833874e8583f7b15bd1df16aafaa7313a7066g.jpgSplitcontainer flowlayoutpanel या autosized पैनल (VB.NET) एक आवेदन मैं एक टीम के साथ पर काम कर रहा हूँ में

आप देख सकते हैं, splitcontainer के शीर्ष पैनल: दुर्भाग्य से, एक splitcontainer में पैनलों एक AutoSize संपत्ति नहीं है ...

यहाँ दिखाने के लिए हम क्या जरूरत है दो छवियों हैं इसकी सामग्री के आकार में समायोजित करना चाहिए। क्या इसे प्राप्त करने का कोई तरीका है?

उत्तर

3

मैं यह सोचते कर रहा हूँ आप अपनी छवि के आधार पर "क्षैतिज" विभाजित कंटेनर का मतलब है।

आप शीर्ष पैनल के ControlAdded घटना का उपयोग करके स्वयं इसे प्राप्त करने की कोशिश कर सकते हैं:

Public Class Form1 

    Public Sub New() 
    InitializeComponent() 
    End Sub 

    Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown 
    SplitContainer1.SplitterDistance = SmallPanel.Height 
    End Sub 

    Private Sub SplitContainer1_Panel1_ControlAdded(ByVal sender As Object, ByVal e As ControlEventArgs) Handles SplitContainer1.Panel1.ControlAdded 
    SplitContainer1.SplitterDistance += e.Control.Height 
    End Sub 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim addPanel As New Panel 
    addPanel.BorderStyle = BorderStyle.FixedSingle 
    addPanel.Size = New Size(SplitContainer1.Panel1.ClientSize.Width, 100) 
    addPanel.Location = New Point(0, SplitContainer1.SplitterDistance) 
    addPanel.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or AnchorStyles.Right 
    SplitContainer1.Panel1.Controls.Add(addPanel) 
    End Sub 

End Class 

SmallPanel एक पैनल मैं SplitContainer की Panel1 में रखा और उनके जोड़ने के लिए अधिक पैनल में एक बटन जोड़ा है।

+0

यह काम करेगा लेकिन मैं ऐसा कुछ करने की उम्मीद कर रहा था जो स्वचालित रूप से करता है। उपयोगकर्ता नियंत्रण में ऊपरी पैनल में वास्तव में केवल एक नियंत्रण होता है। उस नियंत्रण में फ्लोलेआउट पैनल है, और मुझे splitcontainer शीर्ष पैनल को उपयोगकर्ता नियंत्रण में फ्लोलेआउट पैनल के आकार में समायोजित करने के लिए पसंद आया होगा ... वैसे भी आपके उत्तर के लिए धन्यवाद। – MarioDS

+0

@ मारियो डीसेचापेमेस्टर यदि एफएलपी यूसी में है, तो आपको स्पष्ट रूप से उस यूसी को पहले से ही आकार देने की आवश्यकता है (यही वह है जो ऐसा लगता है)। 'स्प्लिटरडिस्टेंस' – LarsTech

+0

सेट करने के लिए बस यूसी के आकार बदलने की घटना में हुक करें ओह हाँ, मैं कोशिश करूँगा, धन्यवाद। – MarioDS