स्वीकार्य उत्तर वास्तव में प्रश्न का उत्तर नहीं देता है; यह सिर्फ बताता है कि यह व्यवहार क्यों हो रहा है।
कुछ अन्य उत्तरों ठोस कामकाज का प्रस्ताव देते हैं, लेकिन मुझे पता चला है कि सबसे अच्छा समाधान वास्तव में आधार फार्म बनाना है कि आपके आवेदन के सभी रूपों का उत्तराधिकारी इस बेस फॉर्म की फ़ॉन्ट प्रॉपर्टी से SystemFonts.MessageBoxFont
पर है निर्माता। यह न केवल यह सुनिश्चित करता है कि आपका एप्लिकेशन उपयोगकर्ता के पर्यावरण के आधार पर रन-टाइम पर सही फ़ॉन्ट उठाता है (हंस पासेंट द्वारा उत्पन्न संभावित समस्या को दूर करना- Office 2007 के बिना एक एक्सपी सेगो यूआई की अनुपस्थिति में माइक्रोसॉफ्ट सैन्स सेरिफ़ का सहारा लेगा), लेकिन आपको अपने वर्तमान विंडोज फ़ॉन्ट के लिए डिज़ाइन-टाइम समर्थन भी प्रदान करता है। डिज़ाइन समय पर सही फ़ॉन्ट का उपयोग करने से समस्या जोसेगोगोम्स बताती है, क्योंकि फॉर्म पर बनाए गए किसी भी कंटेनर नियंत्रण को डिज़ाइन-टाइम पर फ़ॉर्म द्वारा उपयोग किए जाने वाले फ़ॉन्ट को उठाया जाएगा।
उपर्युक्त फायदों के अलावा, यह आपको आपके द्वारा बनाए गए प्रत्येक फॉर्म के लिए कन्स्ट्रक्टर को संशोधित करने और आपके आवेदन के सभी रूपों में स्थिरता सुनिश्चित करने के साथ-साथ आपको अन्य सामान्य कार्यक्षमता रखने के लिए एक स्थान देने के लिए याद रखने से मुक्त करता है । मैं WinForms कार्यान्वयन में बग को ठीक करने के लिए पी/invoking, आदि जैसे कुछ अलग तरीकों से इसका उपयोग करता हूं।
इस दृष्टिकोण के साथ एकमात्र समस्या यह है कि यदि आप किसी विशेष नियंत्रण के लिए फ़ॉन्ट शैली सेट करना चाहते हैं, जैसे बोल्ड।यह करने के लिए सबसे अच्छी जगह है कि फार्म के निर्माता में अब भी है, एक आधार के रूप प्रपत्र के फ़ॉन्ट के साथ शुरू और इसे से शैली को बदलकर: समूह बॉक्स के अंदर
myControl.Font = New Font(Me.Font, FontStyle.Bold)
स्रोत
2010-11-02 09:02:52
यह वाकई दुखी है। :( – wasker