विंडोज फॉर्म का उपयोग करके मैं विंडो को विशिष्ट कॉर्ड में रखना चाहता था। मैंने सोचा कि यह एक सरल तरीके से किया जा सकता है, लेकिन निम्नलिखित कोड बिल्कुल काम नहीं करता है:सी # विंडो पोजिशनिंग
public Form1()
{
InitializeComponent();
this.Top = 0;
this.Left = 0;
}
हालांकि, जब केवल उस खिड़की के लिए एक संभाल पाने के लिए, यह अच्छी तरह से काम करता है:
public Form1()
{
InitializeComponent();
IntPtr hwnd = this.Handle;
this.Top = 0;
this.Left = 0;
}
आप देख सकते हैं कि मैं उस सूचक के साथ बिल्कुल काम नहीं कर रहा हूं। मैंने एमएसडीएन में निम्नलिखित कथन में पाया:
हैंडल प्रॉपर्टी का मूल्य एक विंडोज एचडब्ल्यूएनडी है। यदि हैंडल में अभी तक नहीं बनाया गया है, तो इस प्रॉपर्टी का संदर्भ देने के लिए को बनाए रखने के लिए मजबूर किया जाएगा।
क्या इसका मतलब यह है कि हम केवल अपने हैंडल के निर्माण के बाद विंडो स्थिति सेट कर सकते हैं? क्या हैंडल आंतरिक रूप से इस हैंडल का उपयोग कर शीर्ष/बाएं हैं? स्पष्टीकरण के लिए धन्यवाद।
आपके प्रश्न का उत्तर नहीं दे रहा है, लेकिन आप 'ऑनहैंडलक्रेटेड' विधि को कॉल करने से बचने के लिए 'ऑनहेंडलक्रेटेड' विधि को ओवरराइड कर सकते हैं। मैं मानता हूं कि यह अजीब है कि 'यह। हैंडल' स्पष्ट रूप से अंतर्निहित हैंडल की जांच करता है और बनाता है, जबकि अंतर्निहित हैंडल पर निर्भर अन्य गुण नहीं हैं। –
क्या आपने उन्हें डिजाइनर में सेट करने का प्रयास किया था? –
मुझे पता है कि मैं इसे कई तरीकों से काम कर सकता हूं। मैं केवल यह जानना चाहता था कि यह इस तरह से क्यों व्यवहार करता है क्योंकि अन्य ढांचे (क्यूटी, WxWidgets, एमएफसी ...) में आप खिड़की के निर्माण के दौरान सीधे अपनी खिड़की की स्थिति सेट कर सकते हैं। – Fremen