2012-01-11 10 views
5

पर सेट रहने नहीं होगा मैं इसWindows.Forms SplitContainer.SplitterWidth क्रम

one of these guys

की तरह एक शांत छोटे छवि डाल करने के लिए मेरी विभाजन कंटेनर खींचें बटन के लिए कोशिश कर रहा हूँ।

मैं OnPaint घटना

private void splitContainer1_Paint(object sender, PaintEventArgs e) 
    { 
     var control = sender as SplitContainer;    

     e.Graphics.DrawImage("...".Properties.Resources.divider, control.SplitterRectangle, 0, 0, 1040, 50, GraphicsUnit.Pixel); 

    } 

यह छवि आकर्षित के रूप में मैं चाहूँगा करता है में निम्नलिखित है, समस्या हमेशा यह है कि ऊंचाई 4 पिक्सेल है। डिजाइनर में मैंने स्प्लिटरविड्थ को 15 पर सेट किया है, लेकिन रनटाइम पर यह हमेशा 4 पर रहता है। इसलिए, केवल 4 पिक्सेल वास्तव में दिखाई देते हैं।

+0

यह एक अनावश्यक विशाल स्प्लिटर छवि की तरह लगता है। आपको एक की आवश्यकता क्यों है? क्या यह एक टच स्क्रीन एप्लिकेशन है? –

+0

यह ऐप में इतना बड़ा नहीं है, मैं इसे 15 * 250 के रूप में एक आयताकार में लिखता हूं। # 1। ग्राफिक डिजाइनर, # 2 की यह छवि है, यह सुनिश्चित करता है कि कुछ भी पिक्सलेटेड नहीं है। –

+0

इसे पुन: उत्पन्न करने में असमर्थ। 1040 x 50 पर बनाई गई एक छवि ने मेरी स्प्लिटर बार में 15 पिक्सेल उच्च खींचा है। – LarsTech

उत्तर

7

हाँ, अपनी टिप्पणी, SplitterPanel एक TableLayoutPanel अंदर, क्रम SplitterWidth सेटिंग भूलना पड़ता है होने के अनुसार तो मैं समस्या नकल किया था। TableLayoutPanels अजीब प्राणी हैं।

दुर्भाग्य से स्पष्ट काम के आसपास:

public Form1() { 
    InitializeComponent(); 
    splitContainer1.SplitterWidth = 15; 
} 
+0

क्या यह आपके लिए काम करता है? क्योंकि मैंने अपनी पेंट विधि के अंदर ऐसा किया - जो अब मैं इसके बारे में सोचता हूं वह मेरे कन्स्ट्रक्टर में ऐसा करने से अलग है। –

+0

प्लस, कोड की उसी पंक्ति को InitializeComponent() विधि में वैसे भी कहा जा रहा है। –

+0

@ जोनाथन हेन्सन मैं एक पेंट इवेंट के दौरान गुण सेट नहीं करता। * * प्रारंभिक कॉम्पोनेंट() 'के बाद कोड की मेरी लाइन समस्या को हल किया गया। यदि नहीं, तो आप इसे हमेशा 'Form1_Load()' ईवेंट में भी ले जा सकते हैं। – LarsTech

0

एक कंटेनर नियंत्रण डिजाइनर में अन्य कंटेनर नियंत्रण में नेस्टेड किया जाता है, नेस्टेड नियंत्रण खींचें गिरा एक रूप पर पहले होना चाहिए।

उदाहरण के लिए यदि डिज़ाइन-टाइम पर विभाजित करने के लिए splitContaner1 (बच्चा) और पैनल 1 (पैरेंट) हैं, तो splitContaner1 (जिसे नेस्टेड किया गया है) पहले फॉर्म पर छोड़ दिया जाना चाहिए। उस पैरेंट पैनल के बाद 1। आखिरी विभाजन पर कॉन्टानेर 1 को पैनल 1 में ले जाना चाहिए।

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