标题:DataGridView的问题!
只看楼主
homesite
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2007-9-27
 问题点数:0 回复次数:0 
DataGridView的问题!

关于DataGridView行验证的"虫"(问题最为严重,也最复杂),看以下代码:
'验证一行的“银行编号”是否为空
Private Sub DataGridView1_RowValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.RowValidating
If blnLoadForm Then Exit Sub '加载窗体中跳过行验证
If e.RowIndex = Me.DataGridView1.Rows.Count - 1 Then Exit Sub
If String.IsNullOrEmpty(Me.DataGridView1.Rows(e.RowIndex).Cells("银行编号").Value.ToString.Trim) Then
Me.DataGridView1.Rows(e.RowIndex).Cells("银行编号").Selected = True
Me.DataGridView1.BeginEdit(True)
Me.DataGridView1.Rows(e.RowIndex).ErrorText = "银行编号不能为空"
blnRowValidated = False
e.Cancel = True
Exit Sub
End If
blnRowValidated = True
Me.DataGridView1.Rows(e.RowIndex).ErrorText = Nothing
End Sub

问题描述如下:这段程序所在的窗体如果是以单独窗体运行的话是没有问题的,但如果是以MDI的子窗体运行的话,如果DataGridView行验证信息不能满足时单击其它控件(如Button控件)整个程序将没有响应而且CPU占用率达到90%以上,但如果单击其它单元格则没有问题。经发现如果去除e.Cancel=True语句则没有问题,但是这样的话如果单击其它单元格时行验证不能满足时又无法中止后续操作。


附件为测试项目,大家可以下载后试一下就知道了,还请大家看看有什么好的解决之道。谢谢!


IonA0f99.rar (79.82 KB) DataGridView的问题!




搜索更多相关主题的帖子: DataGridView 
2007-11-20 11:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-187292-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.098451 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved