2012-11-11 40 views
33

Tôi đang cố gắng cập nhật dải trạng thái trong ứng dụng Windows Forms của mình, nhưng không có gì đang được hiển thị. Đây là mã của tôi:Cách cập nhật StatusStrip trong 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(); 
} 

Trả lời

45

enter image description here

Bạn sẽ cần phải thêm một ToolStripStatusLabel đến StatusStrip.

Sau đó, đặt văn bản của nhãn thay thế (bạn cần phải thực hiện statusstrip.Refresh vì không có làm mới trên nhãn trạng thái).

Thuộc tính trên StatusStripText xuất phát từ StatusStrip thừa hưởng ToolStrip (mà lần lượt được thừa hưởng Control), nhưng không có hiệu ứng hình ảnh do bản chất của toolstrips. Nó có thể hơi khó hiểu.

Ví dụ:

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

Cập nhật *** StatusStrip *** trong 'đa luồng' yêu cầu ** InvokeRequired ** hoặc _TPL Tasks_, * IMHO *. – Kiquenet

0

tôi gặp phải một vấn đề tương tự, nơi tôi thấy một StatusStrip kiểm soát nhưng dường như không ToolStripStatusLabel mục trong tầm kiểm soát của phụ huynh. Ngay cả văn bản ban đầu cho mục ToolStripStatusLabel (ví dụ: "Sẵn sàng") đã được hiển thị. Mục của nhãn là Spring được đặt thành trueTextAlign đến TopLeft.

Vấn đề đã được giải quyết bằng cách thiết lập sự kiểm soát StatusStrip của LayoutStyle để FlowToolStripStatusLabel mục của Overflow-Never. Dường như mục nhãn bị ẩn khi kiểu bố cục của kiểm soát gốc được đặt thành Table.

Các vấn đề liên quan