2011-01-29 18 views
11

इसलिए, मैं प्रोग्रामिंग रूप से एक लेबल जोड़ रहा हूं और मुझे शीर्ष मार्जिन को थोड़ा सा 8 में बदलने की आवश्यकता है। मैं यह स्पष्ट तरीका नहीं कर सकता, तो मेरी सोच में क्या गलत है?Vb.net - नियंत्रण मार्जिन मान सेट करना

Dim LabelAdapter As New Label 
LabelAdapter.text = "Adapter" 
LabelAdapter.Margin.Top = 8 

यह मुझे त्रुटि देता है "अभिव्यक्ति एक मूल्य है और इसलिए असाइनमेंट का लक्ष्य नहीं हो सकता"।

उत्तर

18

Label.MarginPadding ऑब्जेक्ट देता है।

चूंकि Padding एक संरचना है, तो यह वास्तव में प्रति कॉपी करेगा। आप उस प्रतिलिपि के Top मूल्य को बदल रहे हैं, वास्तविक नियंत्रण के मार्जिन के नहीं। चूंकि इसका कोई ध्यान देने योग्य प्रभाव नहीं होगा, वीबी सही ढंग से इसे रोकता है।

आपको एक नया नया मार्जिन असाइन करने की आवश्यकता है। वास्तव में, Margin संपत्ति (या बल्कि, Padding वर्ग) तर्कसंगत रूप से टूटा हुआ है क्योंकि यह व्यक्तिगत मूल्यों को बदलने का एक आसान तरीका नहीं है।

दुर्भाग्य से, हमें बस इसके साथ रहना होगा।

Dim old As Padding = LabelAdapter.Margin 
LabelAdapter.Margin = New Padding(old.Left, 8, old.Right, old.Bottom) 

अजीब, हुह: तो बस Top मान बदलने के लिए, हम लिखने की ज़रूरत?

+0

यदि इंटेलिसेंस आपको पैडिंग क्लास का सुझाव नहीं दे रहा है, तो इसे अनदेखा करें, अधिकतर यह काम नहीं करेगा; बीटीडब्ल्यू ऐसा क्यों होता है? –

+0

@WeaponX मुझे आपकी टिप्पणी समझ में नहीं आ रही है। –

+0

कम से कम वीबीएनईटी का उपयोग करके आईडीई (2013) आपको कुछ नाम जैसे पैडिंग का सुझाव नहीं देगा जब तक कि आप पूरा नाम लिख नहीं लेते। –

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