2012-11-11 13 views
33

मैं अपने Windows Forms एप्लिकेशन में स्टेटस स्ट्रिप को अपडेट करने का प्रयास कर रहा हूं, लेकिन कुछ भी प्रदर्शित नहीं किया जा रहा है। यहाँ मेरी कोड है:विंडोज फॉर्म में स्टेटसस्ट्रिप को अपडेट करने के लिए कैसे करें

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    lines = Regex.Split(textBox1.Text.Trim(), "\r\n"); 
    lineCount = lines.Count(); 
    statusStrip1.Text = "Lines: " + lineCount; 
    statusStrip1.Refresh(); 
} 

उत्तर

45

enter image description here

आप एक ToolStripStatusLabelStatusStrip में जोड़ने के लिए की आवश्यकता होगी।

फिर इसके बजाय लेबल का टेक्स्ट सेट करें (आपको statusstrip.Refresh करने की आवश्यकता है क्योंकि स्थिति-लेबल पर कोई ताज़ा नहीं है)।

StatusStrip पर Text संपत्ति StatusStrip से आता है ToolStrip (जो बारी में Control विरासत में), लेकिन कोई दृश्य प्रभाव पड़ता है TOOLSTRIPS की प्रकृति के कारण इनहेरिट करती है। यह थोड़ा उलझन में हो सकता है।

उदाहरण:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    //... 
    lines = Regex.Split(textBox1.Text.Trim(), "\r\n"); 
    lineCount = lines.Count(); 

    //this label is added in visual editor using the default name 
    ToolStripStatusLabel1.Text = string.Format("Lines: {0}", lineCount); 
    StatusStrip1.Refresh(); 
} 
+0

अपडेट करें *** स्टेटस स्ट्रिप *** में 'बहु-थ्रेडिंग' में ** InvokeRequired ** या _TPL कार्य_, * IMHO * की आवश्यकता है। – Kiquenet

0

मैं एक ऐसी ही समस्या है, जहां मैं माता पिता के नियंत्रण के भीतर एक StatusStrip नियंत्रण लेकिन जाहिरा तौर पर बिना ToolStripStatusLabel आइटम देखने का सामना करना पड़ा। ToolStripStatusLabel आइटम (उदा।, "तैयार") के लिए प्रारंभिक पाठ भी प्रदर्शित नहीं किया गया था। लेबल आइटम का Springtrue और TextAlign पर TopLeft पर सेट किया गया था।

समस्या की स्थापना द्वारा हल किया गया था StatusStrip नियंत्रण के LayoutStyleFlow करने और ToolStripStatusLabel आइटम की OverflowNever करने के लिए। स्पष्ट रूप से लेबल आइटम छुपा था जब अभिभावक नियंत्रण की लेआउट शैली Table पर सेट की गई थी।