मैं एक StatusStrip में नियंत्रण को कैसे संरेखित करूं?


93

मैं एक में एक नियंत्रण संरेखित करने की कोशिश कर रहा हूँ StatusStrip। मैं उसे कैसे कर सकता हूँ?

मुझे उन ToolStripItemनियंत्रणों पर सेट करने के लिए कोई प्रॉपर्टी नहीं दिखाई देती है जो माता-पिता पर उनके भौतिक संरेखण को निर्दिष्ट करते हैं StatusStrip

मुझे संदेश कैसे मिलाया जा सकता है? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90


4
स्प्रिंग प्रॉपर्टी के साथ एक लेबल टूलबार आइटम सेट करें जो सही हो। विवरण: dotnetperls.com/statusstrip (PS हाँ, मुझे पता है कि यह एक पुराना प्रश्न है।)
निक अलेक्सीव

जवाबों:


228

इसे पोस्ट करने के तुरंत बाद MSDN मंचों के माध्यम से मिला :)

आप एक का उपयोग कर सकते ToolStripLabelस्थापना द्वारा सही संरेखित नियंत्रण छद्म को Textकरने के लिए संपत्ति string.Emptyऔर स्थापित करने Springके लिए संपत्ति true। यह उपलब्ध स्थान को भरने और ToolStripLabelओवर के दाईं ओर सभी नियंत्रणों को धकेलने का कारण बनेगा ।


28
यह केवल तभी काम करेगा जब StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table(जो कि डिफ़ॉल्ट है)
AZ।

13
अच्छा लगा। दोनों तरफ स्प्रिंग के साथ एक StatusStripLabel नियंत्रणों को
केंद्रित

काश ऐसा करने का एक "वास्तविक" तरीका होता, लेकिन यह इतना धन्यवाद काम करता है। मुझे आश्चर्य है कि Alignmentसंपत्ति क्या करती है, क्योंकि इसने मेरे आवेदन में कुछ नहीं किया।
TheGateKeeper

2
मुझे आश्चर्य है कि संरेखण संपत्ति क्या मुझे ऐसी कोई संपत्ति नहीं दिखती है।
ताव

यह केवल "स्प्रिंग" के साथ लेबल के बाद एक आइटम की अनुमति देगा, अन्य दिखाई नहीं देंगे, इसके बजाय @V याकूब विधि का उपयोग करें।
पाब्लो कार्रास्को हर्नांडेज़

14

मेरे लिए इसने दो सरल कदम उठाए:

  1. को सेट MyRightIntendedToolStripItem.AlignmentकरेंRight
  2. को सेट MyStatusStrip.LayoutStyleकरेंHorizontalStackWithOverflow

5

अतिरिक्त नोट के रूप में यह इस तथ्य के कारण है कि Win32 एपीआई में एक सेल या तो निश्चित चौड़ाई है या शेष स्थान -1 को भरता है

int statwidths[] = {100, -1};

SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");

यदि स्मृति मुझे सही ढंग से कार्य करती है, तो आपके पास प्रति स्टेटबार में केवल एक भरण कक्ष (-1) हो सकता है।

आप एक तीसरा मध्य सेल भी जोड़ सकते हैं और इसे अधिक सुरक्षित दिखने वाले स्टेटसबार पाने के लिए भरण संपत्ति दे सकते हैं। संगत क्योंकि संदेश के बाईं ओर एक इनसेट होता है जहां आप इसकी अपेक्षा करेंगे। StatusBars के लिए MSDN पृष्ठ पर मिले mspaint शॉट की तरह एक सा

मैं रचनात्मक appreach की तरह हालांकि: D


यह StatusBars के लिए मान्य है, StatusStrips के लिए नहीं, जो पूरी तरह से प्रबंधित कोड हैं।
फिलिप नवारा

3

आप नीचे दिए गए तर्क का उपयोग करके Buttonअंत में प्रदर्शित कर सकते StatusStripहैं।

  1. एक जोड़े ToolstripLabelकोStatusStrip
  2. के रूप में पाठ सेट करें string.Empty
  3. सेट Paddingके लिएToolstripLabel

उदाहरण के लिए:

this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);

एक तीसरा मध्य सेल जोड़ें और यह भरण संपत्ति दें, मुझे ऐसी कोई संपत्ति दिखाई नहीं देती है।
ताव

2

टूलस्ट्रिप लेबल रखें, स्प्रिंग प्रॉपर्टी को सच मानें और बॉटम लिफ़्ट में लेबल संरेखित टेक्स्ट के लिए


1

मैंने पाया कि आप StatusStrip Layout को HoroscopeStackWithOverflow में सेट कर सकते हैं। उसके बाद, स्थिति नियंत्रण पट्टी पर प्रत्येक नियंत्रण के लिए जिसे आप दाईं ओर चाहते हैं, नियंत्रण संरेखण को सही पर सेट करें।

मुझे यह बेहतर लगता है क्योंकि आपको संरेखित करने के लिए किसी अतिरिक्त या डमी नियंत्रण की आवश्यकता नहीं है।


-2

मुझे नियंत्रण का स्थान सेट करने का एक सामान्य तरीका मिल गया है StatusStrip। आप StatusStripनीचे दिए गए चरणों का उपयोग करके किसी भी स्थिति में बटन प्रदर्शित कर सकते हैं।

  1. StatusStrip में एक ToolstripLabel जोड़ें
  2. पाठ को उपयुक्त मात्रा में अंतरिक्ष की तरह सेट करें

    toolStripStatusLabel1.Text = "us;

  3. यदि लेआउट वह नहीं है जो आप चाहते हैं, तो अंतरिक्ष की मात्रा को बदलने के लिए चरण 2 में मिला है toolStripStatusLabel1.Text, अन्यथा काम किया गया है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.