为什么唯独组件StatusBar可以实时刷新信息,而其它组件如TextBox、Label等却不能实时刷新,而必须Refresh() ???

jinyongzhang777 2009-04-21 05:07:30
//添加StatusBar
StatusBar bar = new StatusBar();
......
this.Controls.Add(bar);
......
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 100; i++)
{
this.bar.Text += "d";
this.textBox1.Text += "d";
this.label1.Text += "d";
//每隔5ms显示
Thread.Sleep(5);
//this.Refresh();
}
}

VS2005中不能直接使用StatusBar,而建议使用高级版的StatusStrip,但后者不能实时刷新。StatusBar的实现很是蹊跷,非常感谢!!
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
peaset 2010-09-20
  • 打赏
  • 举报
回复
为什么我登录了还看不到啊
LemIST 2009-04-21
  • 打赏
  • 举报
回复
重写了下TextBox, 结果比Status Bar更新速度要慢点
    class Class2 : TextBox
{
public override string Text
{
get
{
return base.Text;
}
set
{
this.Refresh();
base.Text = value;
}
}
}
blestcc 2009-04-21
  • 打赏
  • 举报
回复
控件就設計成這樣啊,TextBox、Label這樣比較高效。而StatusBar原本就是要實時顯示一些信息的,如果也設計成這樣就會喪失一些應有的功能了。
LemIST 2009-04-21
  • 打赏
  • 举报
回复
观察到了~~以前没有注意,研究下

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧