विण्डोज फॉर्मस विजुअल स्टूडियो | विण्डोज फॉर्मस के बॉर्डर को बदलना | विण्डोज फॉर्मस के बॉर्डर स्टाइल को प्रोग्राम के माध्यम से बदलना | Changing the Borders of Windows Forms
विण्डोज फॉर्मस के बॉर्डर स्टाइल – विजुअल स्टूडियो – विण्डोज फॉर्मस में कई तरह के कण्ट्रोल होते हैं जिन्हें आप फॉर्म में जोड़ सकते हैं। ये कण्ट्रोल टेक्स्टबॉक्स, बटन, ड्रॉपडाउन बॉक्स, रेडियो बटन तथा वेबपेज को प्रदर्शित कर सकते हैं। यदि कोई उपलब्ध कण्ट्रोल आपके एप्लीकेशन की आवश्यकता को पूरा नहीं कर पाता है तो विण्डोज फॉर्मस आपके द्वारा बनाया गया कस्टम कण्ट्रोल को सपोर्ट करता है। आप अपने खुद के कण्ट्रोल भी User Control क्लास की सहायता से बना सकते हैं।
विण्डोज फॉर्मस के बॉर्डर को बदलना (Changing the Borders of Windows Forms)
विण्डोज फॉर्म के रूप तथा आचरण को निर्धारित करते समय आपके पास चयन करने के लिए कई विकल्प होते हैं। उदाहरण के लिये आप फॉर्म के आकार के बदलने के आचरण को नियन्त्रित करने हेतु FormBorderStyle का उपयोग कर सकते हैं। इसमें Fixed3D, FixedDialog, FixedSingle,FixedToolWindow, None, SizableSizableToolWindow जैसे मान सेट कर सकते हैं। Fixed3D विकल्प फॉर्म को एक स्थिर त्रिविमीय (fixed three dimen-sional) बॉर्डर देता है। FixedDialog फॉर्म को एक मोटा स्थिर डायलॉग स्टाइल का बॉर्डर देता है।
FixedSingle फॉर्म में स्थिर एक लाइन वाला बॉर्डर जोड़ता है। FixedToolWindow एक टूल विण्डो बॉर्डर देता है जिसके आकार नहीं बदले जा सकते। None मान सेट करने पर फॉर्म बॉर्डर रहित होगा । Sizable मान सेट करने पर आपके फॉर्म को एक टूल विण्डो बॉर्डर प्रदान करेगा जो आकार बदल सकता है। Form BorderStyle के विभिन्न मानों को सेट करके आप फॉर्म के कैप्शन बार को भी निर्धारित कर सकते हैं तथा साथ ही इस बार पर कौन-कौन से बटन प्रकट होंगे ये निश्चित कर सकते हैं।
विण्डोज फॉर्मस के बॉर्डर स्टाइल को प्रोग्राम के माध्यम से बदलना (Changing the Border Style of Windows Forms Programmatically)
ऊपर आपने फॉर्म के बॉर्डर स्टाइल को डिजाइन समय में बदलना सीखा । इसे आप प्रोग्राम के माध्यम से भी बदल सकते हैं। ऐसी आवश्यकता आप को तब पड़ सकती है जब आप प्रोग्राम के माध्यम से ही नये फॉर्म का निर्माण कर रहे हैं। विण्डोज फॉर्मस के बॉर्डर स्टाइल को प्रोग्राम के माध्यम से बदलने के लिये कोडिंग का यह प्रारूप है –
Me.FormBorderStyle = Windows. Forms.FormBorderStyle.<Value>
उदाहरण के लिए,
Me. Form BorderStyle = Windows. Forms. Form BorderStyle. None
उपरोक्त स्टेटमेण्ट में Me कीवर्ड सक्रिय फॉर्म को इंगित करता है ।
आओ सीखें – एक विण्डोज एप्लीकेश बनायें। इसमें फॉर्म पर एक बटन जोड़ें। बटन को क्लिक करने पर एक अन्य फॉर्म प्रदर्शित हो। उस फॉर्म का बॉर्डर त्रिविमीय हो तथा फॉर्म के आकार में बदलाव का कोई विकल्प ना हो। इसके प्रॉपर्टीज को इस प्रकार सेट करें-
ऑब्जेक्ट | प्रॉपर्टी | मान |
फॉर्म | Name | Form1 |
MaximizeBox | False | |
Text | Lab Exercise | |
बटन | Name | btnShow |
Text | Show the Other Form |
समाधान-
- File मेन्यू को क्लिक करें तथा New Project का चयन करें ।
- New Project डायलॉग बॉक्स खुलने के पश्चात Templates पेन में Windows Application को क्लिक करें।
- Name टेक्स्टबॉक्स में Lab Exercise टाइप करें तथा OK को क्लिक करें । उसके बाद एक नया विण्डोज फॉर्मस प्रोजेक्ट खुलेगा ।
- फॉर्म पर प्रश्न में दिए गए विवरण के अनुसार टूलबॉक्स से कंट्रोल को जोडें । तथा प्रश्नानुसार उनके प्रॉपर्टी को
सेट करें तथा उनहें सजाएँ । - Show The Other Form बटन को दो बार क्लिक करें और btnShow_Click इवेण्ट हैण्डलर के लिए
निम्नलिखित कोड लिखें-
Private Sub btnShow_Click (ByVal sender As System. Object, ByVal e As System.EventArgs)
Handles btnShow.Click
End Sub F5 दबायें । परिणाम
विण्डोज फॉर्मस विजुअल स्टूडियो | एस डी आई और एम डी आई | सिंगल डॉक्यूमेण्ट इंटरफेस | मल्टिपल डॉक्यूमेण्ट इंटरफेस | Windows form in Visual Studio
एस डी आई और एम डी आई (SDI and MDI)
SDI का पूर्ण रूप सिंगल डॉक्यूमेण्ट इंटरफेस (Single Document Interface) होता है । इस इंटरफेस में एक बार में एक डी विण्डो खोला जा सकता है । इसमें यदि आप कोइ नया विण्डो खोलना चाहते हैं तो इसे फिर से एप्लिकेशन स्तर पर खोलना पड़ता है । एक कंटेनर में एक से अधिक एस डी आई डॉक्यूमेण्ट नही रखे जा सकते हैं। नोटपैड इसका एक बेहतर उदाहरण है।
MDI का पूर्ण रूप मल्टिपल डॉक्यूमेण्ट इंटरफेस (Multiple Document Interface) होता है । इस इंटरफेस में एक से अधिक विण्डो खोले जा सकते हैं । इसमें यदि आप कोई नया विण्डो खोलना चाहते हैं तो फिर से आपको एप्लिकेशन खोलने की आवश्यकता नहीं पड़ती है । मल्टिपल डॉक्यूमेण्ट इंटरफेस (Multiple Document Interface) में एक कंटेनर के अंदर एक से अधिक डॉक्यूमेण्ट रखे जा सकते हैं । माइक्रोसॉफट वर्ड इसका एक बेहतर उदाहरण है।
सिंगल डॉक्यूमेण्ट इंटरफेस (Single Document Interface)
विण्डोज़ फॉर्मस का सिंगल डॉक्यूमेण्ट इंटरफेस फीचर आपको एक समय में एक ही डॉक्यूमेण्ट के साथ काम करने की अनुमति देता है। नया सिंगल डॉक्यूमेण्ट इंटरफेस खोलने के लिए नये एप्लिकेशन को खोलना आवश्यक होता है। एक ही कंटेनर में एक से अधिक सिंगल डॉक्यूमेण्ट इंटरफेस डॉक्यूमेण्ट को नहीं रखा जा सकता है।
आओ सीखें – एक विण्डोज़ एप्लिकेशन बनाएं जो दो फॉर्म Form1 तथा Form2 पर बना हो । Form1 पर एक बटन जोड़ें और Form2 पर एक लेबल जोड़ें । Form1 पर जोड़े गए बटन को क्लिक करने पर Form2 प्रकट हो । इसके प्रॉपर्टी को इस प्रकार सेट करें ।
ऑब्जेक्ट | प्रॉपर्टी | मान |
फॉर्म 1 | Name | Form1 |
Text | Lab Exercise | |
बटन | Name | btnForm1 |
Text | Show Second SDI Form | |
फॉर्म 2 | Name | Form2 |
Text | By Default (Form2) | |
लेबल | Name | Labell |
Text | This is second SDI Form. |
समाधान-
- File मेन्यू को क्लिक करें तथा New Project का चयन करें ।
- New Project डायलॉग बॉक्स खुलने के पश्चात Templates पेन में Windows Application को क्लिक करें।
- Name टेक्स्टबॉक्स में Lab Exercise 6.2 टाइप करें तथा OK को क्लिक करें। उसके बाद एक नया विण्डोज फॉर्मस प्रोजेक्ट खुलेगा ।
- Form1 पर प्रश्न में दिए गए विवरण के अनुसार टूलबॉक्स से बटन कंट्रोल को जोडें । तथा प्रश्नानुसार उनके प्रॉपर्टी को सेट करें ।
- उसके बाद Form2 को जोड़ने के लिए मेन्यू से Project तथा Add Windows Form… का चयन करें। Name टेक्स्टबॉक्स में Form2.vb रहने दें । प्रश्न में दिए गए विवरण के अनुसार Form2 पर टूलबॉक्स से एक लेबल कंट्रोल को जोडें ।
- उसके बाद Form1 का चयन करें और Show Second SDI Form बटन को दो बार क्लिक करें। तत्पश्चात btnForm1 इवेण्ट हैण्डलर में यह कोड लिखें –
Private sub btnForm1_C11ck (Byval sender As System.Object, Byval e
As System. EventArge) HandlesbtnForm1. Click
Dim Form As New Form 2 ( )
Form. Show ()
End Sub
उपरोक्त कोड में Show मेथड का उपयोग हुआ है जो Form2 को दर्शाता है । F5 दबायें । परिणाम प्रकट होगा ।
मल्टिपल डॉक्यूमेण्ट इंटरफेस (Multiple Document Interface)
विण्डोज़ फॉर्मस का मल्टिपल डॉक्यूमेण्ट इंटरफेस फीचर आपको एक ही विण्डो में एक से अधिक डॉक्यूमेण्ट के साथ काम करने की अनुमति देता है जैसाकि आपने माइक्रोसॉफट वर्ड, माइक्रोसॉफट एक्सेल तथा माइक्रोसॉफट पावरप्वाइण्ट में काम करते समय देखा होगा। आपको एक बार एप्लिकेशन खोल लेने के बाद बार बार अलग अलग विण्डो के लिए एप्लिकेशन खोलने की आवश्यकता नही पडती होगी । आपने यह भी नोटिस किया होगा कि एप्लिकेशन विण्डो की संरचना और डॉक्यूमेण्ट विण्डो की संरचना में अंतर है ।
तथा जब आप एप्लिकेशन विण्डो को बंद करते हैं तो सभी विण्डो स्वतः ही बंद हो जाता है । विजुअल स्टूडियो स्वयं मल्टिपल डॉक्यूमेण्ट इंटरफेस का एक बेहतर उदाहरण है । मल्टिपल डॉक्यूमेण्ट इंटरफेस में मुख्य फॉर्म मल्टिपल डॉक्यूमेण्ट इंटरफेस का पेरेण्ट फॉर्म (parent form) कहलाता है तथा अन्य फॉर्म चाइल्ड फॉर्म (child form) कहलाता है।
आओ सीखें – एक विण्डोज एप्लीकेशन बनायें जिसमें दो फॉर्म हों। पहले फॉर्म पर एक मेन्यू बार जोड़ें जिसमें पहले मेन्यू का नाम File हो। File मेन्यू में दो उप मेन्यू New तथा Close रखें। जब New मेन्यू को क्लिक किया जाये तब दूसरा फॉर्म प्रदर्शित हो। दूसरा फॉर्म यहाँ एम डी आई चाइल्ड की तरह कार्य करेगा। इस फॉर्म में एक टेक्स्ट बॉक्स होगा जिसमें मल्टिलाइन (multiline), वर्ड रैप (word wrap) तथा उग्र स्क्रॉलबार की सुविधा उपलब्ध होगा।
टेक्स्टबॉक्स का आकार फॉर्म के बराबर का हो। इसके अतिरिक्त टेक्स्ट के फॉण्ट का आकार 10 सेट हो तथा फॉर्म का बॉर्डर None सेट हो ताकि एम डी आई चाइल्ड फॉर्म नोटपैट की तरह दिखे। जब आप File से New क्लिक करें तो एम डी आई चाइल्ड प्रकट हो तथा वह एम डी आई पेरेण्ट विण्डो में दिखे। File से Close को क्लिक करने पर सक्रिय एम डी आई चाइल्ड विण्डोज फॉर्म बन्द हो जाए। इस विण्डोज़ एप्लिकेशन में उपयोग किए जा रहे ऑब्जेक्ट, उनके प्रॉपर्टी तथा उनके मान इस प्रकार होंगे।
ऑब्जेक्ट | प्रॉपर्टी | मान |
पेरेण्ट फॉर्म | Name | Form1 |
Text | MDI Parent | |
IsMdiContainer | True | |
मेन्यूबार | Name | MenuStrip1 |
मुख्य मेन्यू | Name | mnuFile |
Text | File | |
उप मेन्यू | Name | mnuNew |
Text | New | |
उप मेन्यू | Name | mnuClose |
Text | Close | |
चाइल्ड फॉर्म | Name | frmMDIChild |
Text | MDI Child | |
FormBorderStyle | FixedSingle | |
टेक्स्टबॉक्स | Name | txtTextBox |
Font | Times New Roman, 10 | |
Multiline | True | |
Dock | Fill |
समाधान-
- File मेन्यू को क्लिक करें तथा New Project का चयन करें।
- New Project डायलॉग बॉक्स खुलने के पश्चात Templates पेन में Windows Application को क्लिक करें।
- Name टेक्स्टबॉक्स में Lab Exercise टाइप करें तथा OK को क्लिक करें । उसके बाद एक नया विण्डोज फॉर्मस प्रोजेक्ट खुलेगा।
- इस फॉर्म के कैप्शन को सेट करें। इसके कैप्शन को सेट करने के लिये इसके Text प्रॉपर्टी में जाएँ और MDI Parent फॉर्म लिखें।
- तथा IsMdiContainer प्रॉपर्टी को True सेट करें।
- उसके बाद इसमें एक मेन्यूबार जोड़ने के लिए टूलबॉक्स से MenuStrip कम्पोनेण्ट को दो बार क्लिक करें। तथा मुख्य मेन्यू में File और उप-मेन्यू में पहले New और फिर Close टाइप करें। मेन्यू बनाने की जानकारी विस्तृत रूप से अध्याय 8 में दी हुई है। उसके बाद File मेन्यू के Name प्रॉपर्टी में जाकर इसके नाम को mnuFile सेट करें तथा New और Close का नाम mnuNew और mnuClose सेट करें।
- अब एक और फॉर्म जोड़ें जो एप्लीकेशन में एम डी आई चाइल्ड फॉर्म की तरह कार्य करे। एक और फॉर्म जोड़ने के लिये, Project को क्लिक करें और Add Windows Form… का चयन करें। Add New Item डायलॉग बॉक्स प्रकट होगा। Windows Form देखेंगे कि पहले से चयनित है तथा Name टेक्स्टबॉक्स में बाई डिफॉल्ट Form2.vb रहने दें । Add क्लिक करें।
- दूसरे फॉर्म के प्रॉपर्टी के मानों को प्रश्नानुसार सेट करें । जो इस प्रकार होनी चाहिए । एक बार जॉच लें ।
Name frmMDIChild
Text MDI Child
FormBorderStyle FixedSingle
- frmMDIChild नामक फॉर्म में अर्थात् दूसरा फॉर्म जो अपने जोड़ा है उसमें एक टेक्स्टबॉक्स जोड़ें। तथा प्रश्नानुसार
टेक्स्टबॉक्स के प्रॉपर्टी को बदलें । जो इस प्रकार आपने सेट किया है कि नहीं एक बार जॉच लें ।
Name txtTextBox
Font Times New Roman, 10
Multiline True
Dock Fill
- इसके बाद frmMDIParent फॉर्म अर्थात् पहला फॉर्म का चयन करें । तथा उसके New मेन्यू आइटम को दो
बार क्लिक करें और इसके Click इवेण्ट हैण्डलर के लिए यह कोड लिखें
Dim form as new frmMDIChild
form.MdiParent = Me
form.show() - उपरोक्त कोड के सबसे पहले लाइन में frmMDIChild के एक नए ऑब्जेक्ट का निर्माण तब तब करेगा जब जब यूजर New मेन्यू को क्लिक करेगा। पहले लाइन का कोड यह बताने के लिए है कि यह फॉर्म एम डी ओइ कंटेनर के अंदर खुलना चाहिए । इसमे Me की वर्ड MDIParent फॉर्म को इंगित करता है। Show मेथड का उपयोग frmMDIChild को डिस्पले करने में हो रहा है।
- इसके बाद Close मेन्यू आइटम के क्लिक इवेण्ट हैण्डलर में ये कोड लिखें-
If Me.ActiveMdiChild Is Nothing Then
Else
Me.ActiveMdiChild.Close()
End If
End Sub
उपरोक्त कोड में mnuClose_Click इवेण्ट हैण्डलर आपके द्वारा Close मेन्यू के क्लिकिंग इवेन्ट को नियन्त्रित करता है। MDIParent विण्डोज फॉर्म के ActiveMDIChild प्रॉपर्टी का उपयोग सक्रिय MDIChild फॉर्म को प्राप्त करने में होता है। Me उस फॉर्म को इंगित करता है जो इस इवेण्ट को निर्मित करता है। यदि कोई MDI Child फॉर्म है तो यह फंक्शन इस Close मेथड का उपयोग कर बन्द कर देता है।
F5 दबाकर प्रोग्राम को रन करे। उसके बाद मुख्य फॉर्म के File मेन्यू के अंदर New मेन्यू का चयन करें। जितनी बार आप मेन्यू का चयन करेंगे उतनी बार मुख्य विण्डो के अंदर चाइल्ड विण्डो खुलेगा तथा File Close New का चयन कर चाइल्ड विण्डो को बंद करते जाएँ।
✍️ आज आपने क्या सीखा (What Did You Learn Today)
- फॉर्म के प्रॉपर्टी को डिज़ायन समय सेट करने के लिए प्रॉपर्टीज़ विण्डो का उपयोग करते हैं ।
- प्रॉपर्टीज़ विण्डो को खोलने के लिए मेन्यू बार पर View को क्लिक करें और Properties Windows का चयन करें । या की बोर्ड से F4 दबाएं ।
- फॉर्म के आकार के बदलने के आचरण को नियन्त्रित करने हेतु Form BorderStyle का उपयोग करते हैं। इसमें Fixed3D, FixedDialog, FixedSingle, FixedToolWindow, None, Sizable तथा Sizable ToolWindow जैसे मान सेट होते हैं।
- Me कीवर्ड सक्रिय फॉर्म को इंगित करता है ।
- SDI का पूर्ण रूप सिंगल डॉक्यूमेण्ट इंटरफेस (Single Document Interface) होता है । इस इंटरफेस में एक बार में एक ही विण्डो खोला जा सकता है । इसमें यदि आप कोइ नया विण्डो खोलना चाहते हैं तो इसे फिर से एप्लिकेशन स्तर पर खोलना पड़ता है । एक कंटेनर में एक से अधिक एस डी आई डॉक्यूमेण्ट नही रखे जा सकते हैं । नोटपैड इसका एक बेहतर उदाहरण है।
- MDI का पूर्ण रूप मल्टिपल डॉक्यूमेण्ट इंटरफेस (Multiple Document Interface) होता है । इस इंटरफेस में एक से अधिक विण्डो खोले जा सकते हैं। इसमें यदि आप कोई नया विण्डो खोलना चाहते हैं तो फिर से आपको एप्लिकेशन खोलने की आवश्यकता नहीं पड़ती है । मल्टिपल डॉक्यूमेण्ट इंटरफेस (Multiple Document Interface) में एक कंटेनर के अंदर एक से अधिक डॉक्यूमेण्ट रखे जा सकते हैं । माइक्रोसॉफट वर्ड इसका एक बेहतर उदाहरण है।