2009-05-18 8 views
6

मैं टास्कबार को बाईं ओर डॉक करता हूं, जिससे टास्कबार के नीचे कई खिड़कियां खुलती हैं।विंडोज टास्कबार द्वारा एक फॉर्म को असुरक्षित बनाने का सही तरीका क्या है?

सिस्टम में से कोई भी नहीं। Windows.Form.FormStartPosition मान मैन्युअल को छोड़कर टास्कबार को ध्यान में रखते हैं। क्या यह डिजाइन द्वारा है? यह परेशान करने वाला है। मैं डिफ़ॉल्ट मॉनीटर और विंडो स्थिति मानों का सम्मान करना चाहता हूं जिन्हें ओएस को लागू करना चाहिए।

+0

कृपया अपने प्रश्न का अधिक वर्णन करें, यह बहुत स्पष्ट नहीं है – abatishchev

+0

मैंने अपनी दाईं ओर डॉकिंग शुरू कर दी क्योंकि यह बहुत ही कष्टप्रद था। CreateWindowEx API से उत्पन्न "डिफ़ॉल्ट" स्थिति में यह बग हमेशा के लिए है, और यह शायद हमेशा के लिए और अधिक रहेगा। –

उत्तर

5

ठीक है, अगर WinForms स्वचालित रूप से ऐसा नहीं करता है, तो आपको इसे मैन्युअल रूप से सेट करना पड़ सकता है।

आपको टास्कबार के बिना स्क्रीन का क्षेत्र प्राप्त करने के लिए System.Windows.Forms.Screen.PrimaryScreen.WorkingArea का उपयोग करना होगा, और उस आयत का उपयोग मैन्युअल रूप से स्टार्टअप क्षेत्र की गणना करने के लिए करें, और इसे सेट करें फॉर्म की बाउंड्स संपत्ति। (सुनिश्चित करें कि फॉर्म FormStartPosition.Manual का उपयोग कर रहा है)।

+1

मुझे यह भी जांचना है कि क्या टास्कबार स्वतः छिपाने के लिए सेट है और यदि उपयोगकर्ता टास्कबार को विंडोज़ पर दिखाना चाहता है। अरे। –

+0

मुझे आम तौर पर लगता है कि यदि आप चाहते हैं कि आपका प्रोग्राम "अच्छा" हो और उन सभी छोटे पालतू शिखर न हों तो आपके पास वास्तव में आपके हाथों पर बहुत अधिक काम है। और यह एक वास्तविक शर्म की बात है कि केवल बहुत कम उपयोगकर्ता ही इसकी सराहना करेंगे (लेकिन स्वयं ऐसा एक ऐसा उपयोगकर्ता है जो काम करने का एक महत्वपूर्ण कारण है: डी) –

1

मुझे लगता है कि ऐसा करने के लिए कोई .NET तरीका नहीं है। मुझे ऐसा कोई कारण नहीं दिख रहा है।

आप taskbar position का पता लगा सकते हैं और अपना फॉर्म मैन्युअल रूप से रख सकते हैं।

+2

मैंने जो कारण दिया वह पर्याप्त नहीं है? एक विंडो की डिफ़ॉल्ट प्रारंभिक स्थिति को तस्बकर का सम्मान करना चाहिए यदि "अन्य विंडो के शीर्ष पर टास्कबार रखें" चेक किया गया है। ओएस एक्स देखें। वैकल्पिक यह पता लगाने के लिए है कि उपरोक्त वरीयता क्या सेट है, मॉनीटर को डिफ़ॉल्ट रूप से खोलने के लिए विंडो को ढूंढें, यह पता लगाएं कि क्या टास्कबार विंडो से जुड़ा हुआ है, और यदि मैन्युअल रूप से प्रारंभिक स्थिति की गणना करता है । –

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