{
int p=1,x
char c
while((c=getchar())<'0'||c>衡纤拦'9')
if(c=='-')
p=-1
x=c-'0'
while((c=getchar())>'0'&&c<='咐胡9')
x=x*10+c-'0'竖枯
x*=p
return x
}
给你个小建议,不能从根本上解决你的问题,不过看起来可能会好一些。1、把你的
If (e.Row.RowType = DataControlRowType.DataRow) Then
e.Row.Cells(n).Attributes.Add("class", "text")
End If
代码移到上面的循环“For i = 0 To gvSalaryYear.Rows.Count - 1 '循环仿旅肢读取,并累加”中去,这样减少了循环次数。
2、备世由于循环次数较多,导致Windows无法刷新界面元素,给人的感觉像是死机了。所以最好给Windows留出执行其它事件的时间。
也就是在你的循环内部加入Application.DoEvent()。最好在
gvSalaryYear.Rows(i).Cells(13).Text = Format(sum, "#,##0.00")
后面加,这样当你改变文本的内容后,画面可以得到更镇念新。
3、减少类型转换的次数
If (Not gvSalaryYear.Rows(i).Cells(j).Text.Trim() Is Nothing And gvSalaryYear.Rows(i).Cells(j).Text.Trim() <>" ") Then
sum += Convert.ToDouble(gvSalaryYear.Rows(i).Cells(j).Text.Trim())
End If
改为:
变量 = gvSalaryYear.Rows(i).Cells(j).Text
If (Not 变量 Is Nothing And String.IsNullOrEmpty(变量.Trim())) Then
sum += Convert.ToDouble(变量.Trim())
End If
这样也可以提高速度。
注:你的“Not gvSalaryYear.Rows(i).Cells(j).Text.Trim() Is Nothing”代码是有问题的,如果gvSalaryYear.Rows(i).Cells(j).Text是Nothing,在执行Trim()时会出现异常。
希望以上建议对你有用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)