ToolStripStatusLabel控件Text显示问题

user2007001 2013-04-16 11:18:21

FROM中有“转换”(Name:btnConvert)、“写入”(Name:button1)两个按钮控件,底部有ToolStripStatusLabel(Name:stpbSM)、ToolStripProgressBar(Name:stpbJD)
我想实现当点击“转换”按钮后出现窗体状态条出现“转换进度:”+进度条,转换完成自动消失此部分提示,同样单击“写入”按钮时出现窗体状态条出现“写入进度:”+进度条,转换完成自动消失此部分提示
stpbSM属性:
//
// stpbSM
//
this.stpbSM.Name = "stpbSM";
this.stpbSM.Size = new System.Drawing.Size(0, 17);
this.stpbSM.Text ="";
this.stpbSM.Visible =true;
stpbJD属性:
//
// stpbJD
//
this.stpbJD.AutoToolTip = true;
this.stpbJD.Name = "stpbJD";
this.stpbJD.Size = new System.Drawing.Size(200, 16);
this.stpbJD.ToolTipText = "转换进度";
this.stpbJD.Visible = false;


“转换”按钮单击事件代码
private void btnConvert_Click(object sender, EventArgs e)
{
btnConvert.Enabled = false;
//进度条前的文本提示
stpbSM.Text = "转换进度:";
//转换进度状态条
stpbJD.Minimum = 0;//转换进度状态条最小值为0
stpbJD.Maximum = dgvTB.Rows.Count;//转换进度状态条最大值为行数总计
stpbJD.Value = 0;//转换进度状态条初始值
stpbJD.Size = new Size(this.Size.Width - 30 - stpbSM.Size.Width, stpbJD.Size.Height);//转换进度状态条尺寸
stpbJD.Visible = true;
//循环转换DateGridView中行数据
for (int i = 0; i < dgvTB.Rows.Count; i++)
{
//数据转换代码
stpbJD.Value += 1;////转换进度状态条增加1
}
stpbJD.Visible = false;//隐藏转换进度条
stpbSM.Text = "";
btnConvert.Enabled = true;//解禁转换按钮
button1.Enabled = true;//只有转换一次后才能解禁“写入”按钮
}

问题:为什么ToolStripStatusLabel(Name:stpbSM)在点击写入按钮后不显示?
...全文
468 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gxingmin 2013-04-16
是不是上面执行过程太快了,立即执行到后面的 stpbSM.Text = ""; 所以内容看不到了
  • 打赏
  • 举报
回复
user2007001 2013-04-16
引用 1 楼 gxingmin 的回复:
写入按钮代码在哪里?
省略了,如果转换代码中问题解决了,写入问题也就解决了
  • 打赏
  • 举报
回复
gxingmin 2013-04-16
写入按钮代码在哪里?
  • 打赏
  • 举报
回复
user2007001 2013-04-16
引用 5 楼 gxingmin 的回复:
for (int i = 0; i < dgvTB.Rows.Count; i++) { //数据转换代码 stpbJD.Value += 1;////转换进度状态条增加1 stpbSM.Refresh(); //加上这句 ……
stpbSM没有Refresh()方法,我试了是ToolStripStatusLabel.Refresh(),谢谢你的指导。
  • 打赏
  • 举报
回复
gxingmin 2013-04-16
for (int i = 0; i < dgvTB.Rows.Count; i++) { //数据转换代码 stpbJD.Value += 1;////转换进度状态条增加1 stpbSM.Refresh(); //加上这句 }
  • 打赏
  • 举报
回复
user2007001 2013-04-16
引用 3 楼 gxingmin 的回复:
是不是上面执行过程太快了,立即执行到后面的 stpbSM.Text = ""; 所以内容看不到了
进度条代表着转换的速度,处理需要大概半分钟的样子 ,如果去掉下面一句,则只有先进度条完成之后才显示出来“转换进度:” stpbSM.Text = "";
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2013-04-16 11:18
社区公告

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