दुर्भाग्य से (मुझे उम्मीद है कि कोई और बेहतर समाधान पोस्ट करेगा!), केवल कामकाज मुझे पता है कि फार्म के अंदर एक पैनल रखना है।
Autoscroll
और AutoSize
मूल रूप से मूल रूप से गुणों को सेट करें। फिर पैनल आकार को वांछित आकार में बढ़ाएं। फॉर्म स्वयं भी आपके स्क्रीन रिज़ॉल्यूशन से बड़ा नहीं होगा, लेकिन यह स्क्रॉल बार दिखाएगा, इसलिए कम से कम आप डिज़ाइनर का उपयोग अपने आकार की सीमाओं से परे बड़े पैनल पर नियंत्रण आदि को छोड़ सकते हैं।
फिर, आपको रन-टाइम पर फॉर्म आकार को समायोजित करने के लिए कुछ कोड जोड़ने की आवश्यकता हो सकती है ताकि स्क्रॉल बार के बिना पैनल को दिखाने के लिए पर्याप्त हो (और शायद ऑटोस्कोल प्रॉपर्टी को भी अक्षम कर दें)।
मुझे पता है, यह एक विशेष रूप से अच्छा वैकल्पिक हल नहीं है ...
संपादित:
ऐसा लगता है कि यह जानबूझकर और डिजाइन द्वारा:
MSDN
संपत्ति पर्चा .Size: इस संपत्ति का अधिकतम मूल्य तक सीमित है स्क्रीन का संकल्प जिस पर फॉर्म चलता है। मान प्रत्येक स्क्रीन आयाम (क्षैतिज + 12 और लंबवत + 12) पर 12 पिक्सल से अधिक नहीं हो सकता है।
और फिर Microsoft Connect/Public Bug Tracking पर:
माइक्रोसॉफ्ट 2008/10/09 पर द्वारा पोस्ट 12:18 पर पूर्वाह्न
.नेट फ्रेमवर्क पर आपकी प्रतिक्रिया के लिए धन्यवाद!
आपके द्वारा रिपोर्ट की गई समस्या वास्तव में डिज़ाइन द्वारा है।
इस संपत्ति का अधिकतम मान स्क्रीन है जिस पर प्रपत्र रनों का संकल्प द्वारा सीमित है:
MSDN में http://msdn.microsoft.com/en-us/library/25w4thew.aspx पर, आप विषय Form.Size संपत्ति में निम्न जानकारी प्राप्त कर सकते हैं।मान प्रत्येक स्क्रीन आयाम (क्षैतिज +12 और लंबवत + 12) पर 12 पिक्सल से अधिक नहीं हो सकता है।
इसलिए, हम अपने रूपों को अनिश्चित काल तक विस्तारित नहीं कर सकते हैं। यह व्यवहार अन्य सॉफ़्टवेयर, जैसे नोटपैड और माइक्रोसॉफ्ट पेंट के साथ संगत है।
यह व्यवहार निम्न कोड के साथ mothed Form.SetBoundsCore (...) में परिभाषित किया गया है:
आकार अधिकतम = SystemInformation.MaxWindowTrackSize;
अगर (ऊंचाई> max.Height) {
height = max.Height; }
अगर (चौड़ाई> max.Width) {
width = max.Width; }
[...]
धन्यवाद, UIFx टीम
EDIT2:
के बाद से जांच की तरह (एक decompiler के रूप में ILSpy का प्रयोग करके) Forms.SetBoundsCore में hardcoded है:
if (this.WindowState == FormWindowState.Normal && (base.Height != height || base.Width != width))
{
Size maxWindowTrackSize = SystemInformation.MaxWindowTrackSize;
if (height > maxWindowTrackSize.Height)
{
height = maxWindowTrackSize.Height;
}
if (width > maxWindowTrackSize.Width)
{
width = maxWindowTrackSize.Width;
}
}
और SetBoundsCore शायद आप Windows.Forms से एक वर्ग पाने की कोशिश कर सकते एक संरक्षित समारोह है,। फॉर्म, SetBoundsCore ओवरराइड करें और SetBoundsCore के अपने संस्करण में इस चेक को लागू न करें? मैंने कोशिश नहीं की है अगर यह काम करता है ...
की नकल की मेरी 1360x768 लैपटॉप पर बहुत से लोगों को, मैं भी कोड की तरह। मुझे अभी तक उस समस्या का सामना नहीं हुआ है, लेकिन आपके लिए धन्यवाद, मेरे पास पहले से ही एक कामकाज होगा! – Tipx