c# - संकल्प में परिवर्तन के साथ ऑटो नियंत्रण का आकार बदलने और समायोजित करने के लिए कैसे करें




winforms user-interface (6)

मैंने देखा है कि कुछ एप्लिकेशन संकल्प में यथासंभव यथासंभव समायोजित करने के लिए अपनी नियंत्रण स्थिति बदलते हैं, यदि खिड़की को अधिकतम किया जाता है तो वे स्वयं को इस तरह से सेट करते हैं कि सभी जीयूआई संतुलित दिखते हैं। मेरा सवाल यह है कि क्या विजुअल स्टूडियो 2010 सी # में इस कार्यक्षमता को बनाना या कार्यान्वित करना संभव है?


.. और इसे संभालने के लिए संकल्प में बदलाव का पता लगाने के लिए (एक बार जब आप डॉकिंग और एंकरिंग का उपयोग कर रहे हैं जैसे SwDevMan81 सुझाया गया है) SystemEvents.DisplaySettingsChanged ईवेंट का उपयोग Microsoft.Win32


पेज लोड पर इस कोड को सभी नियंत्रण के लिए जोड़ें या कंटेनरों में सभी नियंत्रण जोड़ें

int x;
Point pt = new Point();
x = Screen.PrimaryScreen.WorkingArea.Width - 1024;
x = x / 2;
pt.Y = groupBox1.Location.Y + 50;
pt.X = groupBox1.Location.X + x;
groupBox1.Location = pt;

वांछित परिणाम प्राप्त करने के लिए इनके संयोजनों का उपयोग करें:

  1. Anchor संपत्ति को किसी के लिए सेट करें, नियंत्रण का आकार नहीं बदला जाएगा, वे केवल अपनी स्थिति बदल देंगे।

  2. Anchor संपत्ति को शीर्ष + नीचे + बाएं + दाएं सेट करें, नियंत्रण का आकार बदल जाएगा लेकिन वे अपनी स्थिति नहीं बदलते हैं।

  3. फॉर्म का Minimum Size उचित मान पर सेट करें।

  4. Dock संपत्ति सेट करें।

  5. जो भी आप चाहते हैं उसे बदलने के लिए Form Resize ईवेंट का उपयोग करें

मुझे नहीं पता कि फ़ॉन्ट आकार (लेबल, टेक्स्टबॉक्स, कंबोबॉक्स, इत्यादि) कैसे प्रभावित होंगे (1) - (4), लेकिन इसे नियंत्रित किया जा सकता है (5)।


Dock और Anchor गुणों का प्रयोग करें। Here एक अच्छा लेख है। ध्यान दें कि अधिकतम / छोटा करने पर ये परिवर्तनों को संभाल लेंगे। यह थोड़ा अलग है कि यदि स्क्रीन रिज़ॉल्यूशन बदलता है, लेकिन यह एक ही विचार के साथ होगा।


private void MainForm_Load( object sender, EventArgs e ) 
     { 
        this.Size = Screen.PrimaryScreen.WorkingArea.Size 
     }

this.WindowState = FormWindowState.Maximized;




screen-resolution