2013-03-05 4 views
5

देखें मेरी मामला है,शीर्ष सबसे अधिक (ज़ेड-ऑर्डर) एक पैनल में नियंत्रण ढूँढना

मैं एक से अधिक forms (toplevel=false) एक panel अंदर खोलने रहा हूँ। रनटाइम के दौरान panel और brought to front के अंदर forms खोला जाएगा। और इस स्थिति में मेरी ज़रूरत है, मैं panel पर शीर्ष नियंत्रण (form) का चयन कैसे कर सकता हूं। शीर्ष नियंत्रण का मतलब है नियंत्रण (form) जिसमें z-order अधिक है।

मैं वर्तमान में इस धारणा से इस कोड का उपयोग कर रहा हूँ,

panel.controls(0) 

शरीर के किसी भी मुझे बता सकते हैं, चाहे ऊपर टुकड़ा सही है या किसी वैकल्पिक वाक्य रचना डॉट नेट में उपलब्ध है कि प्राप्त करने के लिए।?

उत्तर

5

MSDN के अनुसार:

शून्य के एक सूचकांक मूल्य के साथ नियंत्रण ज़ेड-ऑर्डर के शीर्ष पर है, और अधिक संख्या नीचे करने के लिए करीब हैं।

इसलिए, मैं कहूंगा कि आपकी धारणा सही थी। Controls(0) हमेशा शीर्षतम नियंत्रण होगा। एकमात्र चिंता यह होगी कि यह दिखाई दे रहा है या नहीं।

1

मुझे प्रत्येक नियंत्रण के माध्यम से लूपिंग का कोई अन्य समाधान नहीं दिखता है और देखें कि सबसे ऊपर क्या है। कुछ की तरह:

Dim TopMostControl As Control = panel.Controls(0) 'Check if there are any control 
For Each Control As Control In panel.Controls 
    If panel.Controls.GetChildIndex(Control) < panel.Controls.GetChildIndex(TopMostControl) Then 
     TopMostControl = Control 
    End If 
Next 
संबंधित मुद्दे