[求助] datagrid 在 BeforeColUpdate事件中为什么不能更改column(i).text的值
在VB6.0中,datagrid的一列为时间/日期,我想在单元格中直接输入“001234"后,通过一些处理,让其变成“00:12:34”的格式,以便更新。故在BeforeColUpdate事件中,做如下处理:////////////////////////////////////////////////////////////////////
...
Dim timeStr As String
Dim tmp As String
Select Case ColIndex
Case 0 '对应于时间列
timeStr = DataGrid1.Columns(ColIndex).Text
If Len(timeStr) = 6 Then
tmp = Left(timeStr, 2) & ":" & Mid(timeStr, 2, 2) & ":" & Right(timeStr, 2)
DataGrid1.Columns(ColIndex).Text = tmp
End If
////////////////////////////////////////////////////////////////////
可
是调试发现DataGrid1.Columns(ColIndex).Text =tmp
运行完后,DataGrid1.Columns(ColIndex).Text
的值依旧是“001234”,似乎无法改变。另外,在随后引发的AfterColUpdate事件中DataGrid1.Columns
(ColIndex).Text的值已经格式化为“00:01:34”(a),而不是“00:12:34"。datagrid的datasource为一
ADODB.RECORDSET对象,CursorType = adOpenDynamic,LockType =
adLockOptimistic,CursorLocation =
adUseClient,我所用的英文版的VB6.0,如果是中文版,(a)处text的值为"上午
12:01:34”,我想问一下,(1)为什么中BeforeColUpdate中无法更改text的值,(2)在完成一个单元格的编辑后还有什么办法更
改text的值
[此贴子已经被作者于2007-7-15 10:51:12编辑过]