2010-05-25 3 views
6

मेरे पास एक .NET अनुप्रयोग है जिसमें स्टेटसस्ट्रिप तीन टूलटिपस्टैटस लेबल हैं। जब वे स्थिति दिखाते हैं तो लेबल का टेक्स्ट एप्लिकेशन से भरा जाता है। कुछ परिस्थितियों के लिए वे एक खाली पाठ पकड़ सकते हैं।स्वचालित रूप से टूलटिपस्टैटस लेबल में छंटनी का संकेत देता है

जब मैं विंडो का आकार बदलता हूं, तो टूलटिपस्टैटस लेबल तब छुपाए जाते हैं जब वे StatusStrip में फिट नहीं हो सकते हैं। जब मैं स्टेटसस्ट्रिप में लेबल फिट नहीं हो सकता तो मैं टेक्स्ट को छोटा कर दूंगा। लेबल को छिपाने के लिए डिफ़ॉल्ट व्यवहार खाली टेक्स्ट या छिपे हुए लेबल के बीच अंतर करना मुश्किल बनाता है।

यह इंगित करने के लिए कि पाठ स्वचालित रूप से छोटा हो गया है, यह एक इलिप्सिस (...) के साथ इंगित किया जाना चाहिए। यह कैसे किया जा सकता है?

उत्तर

11

लेबल की स्प्रिंग प्रॉपर्टी को अपने आकार को स्वचालित रूप से समायोजित करने के लिए सही पर सेट करें। इलिप्स प्राप्त करने के लिए आपको चित्रकला को ओवरराइड करना होगा। अपनी परियोजना में एक नई कक्षा जोड़ें और नीचे दिखाए गए कोड पेस्ट करें। संकलित करें। आपको स्थिति स्ट्रिप डिजाइनर ड्रॉपडाउन सूची में नया स्प्रिंग लेबल नियंत्रण प्राप्त होगा।

using System; 
using System.Drawing; 
using System.Windows.Forms; 
using System.Windows.Forms.Design; 

[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)] 
public class SpringLabel : ToolStripStatusLabel { 
    public SpringLabel() { 
     this.Spring = true; 
    } 
    protected override void OnPaint(PaintEventArgs e) { 
     var flags = TextFormatFlags.Left | TextFormatFlags.EndEllipsis; 
     var bounds = new Rectangle(0, 0, this.Bounds.Width, this.Bounds.Height); 
     TextRenderer.DrawText(e.Graphics, this.Text, this.Font, bounds, this.ForeColor, flags); 
    } 
} 

यदि आप छवि या TextAlign गुणों का उपयोग अधिक काम करने की आवश्यकता होगी।

+0

अच्छा, वसंत संपत्ति सेट होने पर यह कक्षा अंडाकार जोड़ती है। लेकिन मेरे पास एक से अधिक टूलस्ट्रिपस्टैटस लेबल (या स्प्रिंग लेबल अब) हैं, वास्तव में तीन हैं। जब मैं खिड़की का आकार बदलता हूं, तो केवल अंतिम दृश्य लेबल को छोटा किया जाना चाहिए। वसंत संपत्ति को स्थापित करने से वे सभी एक बार में आकार बदलते हैं। क्या आकार बदलने का आयोजन करने का कोई तरीका है और बाएं पड़ोसी के वसंत गुणों को चुनिंदा रूप से सेट करें, जब बाध्य आयत शून्य आकार का हो? – harper

+0

StatusStrip का उपयोग करें। ईवेंट बदलें और लेबल आकार स्वयं सेट करें। –

+0

अगर मैं कर सकता तो मैं यह +10 दे दूंगा –

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