修改Label的Text值时遇到奇怪问题

boris_d 2010-01-22 10:59:48
我做了一个导出数据库的小程序,有一个label,一个Dropdownlist,一个Botton,我想实现点击导出时让Label显示提示信息,如“正在导出,请稍候..”,当程序快执行完时label显示"导出完成"。
代码如下:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim EquipmentName As String
Dim cmdString1 As String

Label1.Text="正在导出,请稍候..."
Label1.CssClass="red"


EquipmentName = DropDownList1.SelectedValue


If EquipmentName = "" Then


cmdString1 = "Select * from equipment"
GetData(cmdString1)

Else

cmdString1 = "select * from equipment where E_name ='" & EquipmentName & "'"

GetData(cmdString1)


End If


End Sub

GetData是个函数 代码如下:



Sub GetData(ByVal cmdString As String)


Dim conn As SqlConnection
Dim MyDataAdpter As SqlDataAdapter
Dim MyDataSet As DataSet

conn = New SqlConnection(ConfigurationManager.ConnectionStrings("Shenzhou").ConnectionString)
MyDataAdpter = New SqlDataAdapter(cmdString, conn)
conn.Open()

MyDataSet = New DataSet
MyDataAdpter.Fill(MyDataSet, "Equipment")

Dim xlApp As Excel.Application
Dim xlWorkbook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim x As Integer 'Excel中的行
Dim y As Integer 'Excel中的列
Dim i As Integer '数据库中的行
Dim k As Integer '数据库中的列
Dim id As Integer 'id

x = 1
y = 1
id = 1
xlApp = CreateObject(" Excel.Application") '实例化对象
xlWorkbook = xlApp.Workbooks.Add() '创建一个新的workbook
xlWorkSheet = xlWorkbook.Worksheets("sheet1") '创建一个新的worksheet


'创建EXCEL 表头
xlWorkSheet.Cells(x, y) = "设备清单"
With xlWorkSheet
.Range(.Cells(x, y), .Cells(x, y)).Font.Size = 16
.Range(.Cells(x, y), .Cells(x, y)).Font.Name = "黑体"
End With

xlWorkSheet.Cells(x + 2, y) = "序号"
xlWorkSheet.Cells(x + 2, y + 1) = "设备名称"
xlWorkSheet.Cells(x + 2, y + 2) = "设备品牌"
xlWorkSheet.Cells(x + 2, y + 3) = "设备型号"
xlWorkSheet.Cells(x + 2, y + 4) = "计算机类型"
xlWorkSheet.Cells(x + 2, y + 5) = "设备出厂编号"
xlWorkSheet.Cells(x + 2, y + 6) = "设备编号"
xlWorkSheet.Cells(x + 2, y + 7) = "设备统一编号"
xlWorkSheet.Cells(x + 2, y + 8) = "使用人"
xlWorkSheet.Cells(x + 2, y + 9) = "设备状态"
xlWorkSheet.Cells(x + 2, y + 10) = "放置房间"
xlWorkSheet.Cells(x + 2, y + 11) = "具体位置"
xlWorkSheet.Cells(x + 2, y + 12) = "购买类型"
xlWorkSheet.Cells(x + 2, y + 13) = "入帐日期"
xlWorkSheet.Cells(x + 2, y + 14) = "操作系统安装时间"
xlWorkSheet.Cells(x + 2, y + 15) = "硬盘序列号"
xlWorkSheet.Cells(x + 2, y + 16) = "IP地址"
xlWorkSheet.Cells(x + 2, y + 17) = "MAC地址"
xlWorkSheet.Cells(x + 2, y + 18) = "备注"

'导出数据开始

For x = 0 To (MyDataSet.Tables("Equipment").Rows.Count - 1)

xlWorkSheet.Cells(x + 4, y) = id
id = id + 1




xlWorkSheet.Cells(x + 4, y + 1) = MyDataSet.Tables("Equipment").Rows(x)(1) '设备名称
xlWorkSheet.Cells(x + 4, y + 2) = MyDataSet.Tables("Equipment").Rows(x)(2) '品牌
xlWorkSheet.Cells(x + 4, y + 3) = MyDataSet.Tables("Equipment").Rows(x)(3) '型号
xlWorkSheet.Cells(x + 4, y + 4) = MyDataSet.Tables("Equipment").Rows(x)(12) '类型
xlWorkSheet.Cells(x + 4, y + 5) = MyDataSet.Tables("Equipment").Rows(x)(4) '出厂编号
xlWorkSheet.Cells(x + 4, y + 6) = MyDataSet.Tables("Equipment").Rows(x)(5) '设备编号
xlWorkSheet.Cells(x + 4, y + 7) = MyDataSet.Tables("Equipment").Rows(x)(6) '统一编号
xlWorkSheet.Cells(x + 4, y + 8) = MyDataSet.Tables("Equipment").Rows(x)(7) '使用人
xlWorkSheet.Cells(x + 4, y + 9) = MyDataSet.Tables("Equipment").Rows(x)(8) '状态
xlWorkSheet.Cells(x + 4, y + 10) = MyDataSet.Tables("Equipment").Rows(x)(9) '房间号
xlWorkSheet.Cells(x + 4, y + 11) = MyDataSet.Tables("Equipment").Rows(x)(14) '位置
xlWorkSheet.Cells(x + 4, y + 12) = MyDataSet.Tables("Equipment").Rows(x)(10) '购买类型
xlWorkSheet.Cells(x + 4, y + 13) = MyDataSet.Tables("Equipment").Rows(x)(11) '日期
xlWorkSheet.Cells(x + 4, y + 14) = MyDataSet.Tables("Equipment").Rows(x)(15) '操作系统安装时间
xlWorkSheet.Cells(x + 4, y + 15) = MyDataSet.Tables("Equipment").Rows(x)(16) '硬盘序列号
xlWorkSheet.Cells(x + 4, y + 16) = MyDataSet.Tables("Equipment").Rows(x)(17) 'IP地址
xlWorkSheet.Cells(x + 4, y + 17) = MyDataSet.Tables("Equipment").Rows(x)(18) 'MAC地址
xlWorkSheet.Cells(x + 4, y + 18) = MyDataSet.Tables("Equipment").Rows(x)(13) '备注

Next

xlApp.Visible = True

Label1.Text="导出完成"
Label1.CssClass="red"

End Sub


可是问题出来了,当我点击的时候,Label的text就是没反应,我又试了好多遍还是没反应,最后把Button1_Click事件里的代码都删掉,只留下Label1.Text="正在导出,请稍候.."。 这下可以了!
后来研究了半天也没明白,请高手赐教!
...全文
486 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
lrjt1980 2010-02-23
  • 打赏
  • 举报
回复
学习。。。。。。。。。。
yanlongwuhui 2010-02-23
  • 打赏
  • 举报
回复
引用 28 楼 boris_d 的回复:
谢谢各位朋友,我用的VS2005,Label没有Refresh属性,有没有别的方法?

VS2005中Label控件有Refresh的方法。不过解决你说的问题在Label1的赋值语句后面加一句Application.DoEvents()就可以了.

rainlove2010 2010-02-03
  • 打赏
  • 举报
回复
加上label.Update()就可以了
我也遇到过这样的问题,就是这么解决的。
hzybc 2010-02-03
  • 打赏
  • 举报
回复
me.Refresh
boris_d 2010-01-29
  • 打赏
  • 举报
回复
谢谢各位朋友,我用的VS2005,Label没有Refresh属性,有没有别的方法?
yanlongwuhui 2010-01-29
  • 打赏
  • 举报
回复
在Label1的赋值语句后面加Application.DoEvents即可
[Quote=引用 21 楼 boris_d 的回复:]
楼上的朋友,Application没有DOEvents属性啊
[/Quote]
你代码中有“Imports Excel”吧,把这行代码注释掉就可以了
oo渣渣oo 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 boris_d 的回复:]
楼上的朋友,Application没有DOEvents属性啊
[/Quote]

你用的什么版本啊?Application怎么可能没有DoEvents方法?
ilovey4 2010-01-28
  • 打赏
  • 举报
回复
VB
lsh2216024 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 leftdisk 的回复:]
很简单的,何必那么麻烦




Label1.Text="正在导出,请稍候..."
Label1.CssClass="red"

之后,加入一句:

Label1.Refresh

搞定。(已测试,可行)

正如4楼所说,程序一直BUSY,Label1.Text的值虽然改了,但是UI显示没有立即更新,可以用Label1.Refresh强制更新。
[/Quote]

支持
leftdisk 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 leftdisk 的回复:]
引用 17 楼 boris_d 的回复:
14楼的朋友? label1没有Refresh属性啊


你用的是VB6不是VB.NET啊,建议你改VB.NET,好用多了,提高效率。
VB6的话:

Label1.Text="正在导出,请稍候..."
Label1.CssClass="red"

之后,加入一句:

DoEvents
[/Quote]



或者可能你的Visual Studio是老版本,Label控件还没有Refresh方法吧,我的是Microsoft Visual Studio 2008,Label控件是有Refresh方法的。
leftdisk 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 boris_d 的回复:]
14楼的朋友? label1没有Refresh属性啊
[/Quote]

你用的是VB6不是VB.NET啊,建议你改VB.NET,好用多了,提高效率。
VB6的话:

Label1.Text="正在导出,请稍候..."
Label1.CssClass="red"

之后,加入一句:

DoEvents
boris_d 2010-01-26
  • 打赏
  • 举报
回复
楼上的朋友,Application没有DOEvents属性啊
oo渣渣oo 2010-01-26
  • 打赏
  • 举报
回复

Label1.Text="正在导出,请稍候..."
Label1.CssClass="red"
的后面加一句

Application.DoEvents就行了
boris_d 2010-01-25
  • 打赏
  • 举报
回复
label1没有Refresh属性啊
解释多余的 2010-01-25
  • 打赏
  • 举报
回复
up
lrjt1980 2010-01-25
  • 打赏
  • 举报
回复
学习一下。
boris_d 2010-01-25
  • 打赏
  • 举报
回复
14楼的朋友? label1没有Refresh属性啊
boris_d 2010-01-25
  • 打赏
  • 举报
回复
顶!
leftdisk 2010-01-23
  • 打赏
  • 举报
回复
很简单的,何必那么麻烦




Label1.Text="正在导出,请稍候..."
Label1.CssClass="red"

之后,加入一句:

Label1.Refresh

搞定。(已测试,可行)

正如4楼所说,程序一直BUSY,Label1.Text的值虽然改了,但是UI显示没有立即更新,可以用Label1.Refresh强制更新。
古今多少事 2010-01-22
  • 打赏
  • 举报
回复
在循环中加上Application.DoEvents试试。
加载更多回复(12)
【资源介绍】 基于Tensorflow框架BERT的中文命名实体识别python源码+详细项目说明.zip 环境 Tensorflow: 1.13 Python: 3.6 tensorflow2.0 会报错。 在souhu文件下 - souhu_util.py 文件是取得预测的label后,转换为实体的数据 处理代码。 - lstm_crf_layer.py 是lstm+crf层的代码 - run_souhu.py 只用bert的代码 - run_souhuv2.py bert+lstm+crf 注意 因为在处理中文时,会有一些奇怪的符号,比如\u3000等,需要你提前处理,否则label_id和inputs_id对应不上,因为bert自带的tokenization会处理掉这些符号。所以可以使用bert自带的BasicTokenizer来先将数据文本预处理一下从而与label对应上。 ```python tokenizer = tokenization.BasicTokenizer(do_lower_case=True) text = tokenizer.tokenize(text) text = ''.join([l for l in text]) ``` 基于上课老师课程作业发布的中文数据集下使用BERT来训练命名实体识别NER任务。 之前也用了Bi+LSTM+CRF进行识别,效果也不错,这次使用BERT来进行训练,也算是对BERT源码进行一个阅读和理解吧。 虽然之前网上也有很多使用BERT的例子和教程,但是我觉得都不是很完整,有些缺乏注释对新手不太友好,有些则是问题不同修改的代码也不同,自己也在路上遇到了不少的坑。所以记录一下。 【备注】 该项目是个人毕设/课设/大作业项目,代码都经过本地调试测试,功能ok才上传,高分作品,可快速上手运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载使用,也欢迎交流学习!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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