'************************************************************************* '**函 数 名:grid_Click '**输 入:无 '**输 出:无 '**功能描述: '**全局变量: '**调用模块: '**作 者: '**日 期: '**修 改 人: '**日 期: '**版 本:V2005.04.001 '************************************************************************* Private Sub grid_Click() txtid.Text = grid.TextMatrix(grid.Row, 1) txtname.Text = grid.TextMatrix(grid.Row, 2) Call Rss rs.Open "select * from t_yhqxb where userid='" & txtid.Text & "'", cn, adOpenStatic, adLockReadOnly If rs.EOF Then For Each obj In Controls If TypeOf obj Is xpcheckbox Then obj.Value = Unchecked End If Next End If Do While Not rs.EOF For Each obj In Controls If TypeOf obj Is xpcheckbox And Trim(rs.Fields("formname")) = obj.name Then If Trim(rs.Fields("sfky")) = "1" Then obj.Value = Checked Else obj.Value = Unchecked End If End If Next rs.MoveNext Loop End Sub
下面表格是VSFLexGrid8.0,楼主需改下就好,就使用一个文本框xx。 'X、Y为窗体级变量 Dim X As Long Dim Y As LongPrivate Sub mfgManList_Click() With mfgManList If .Row > 0 Then X = .Col Y = .Row xx.Move .Left + .ColPos(.Col), .Top + .RowPos(.Row), .ColWidth(.Col), .RowHeight(.Row) xx.Text = .TextMatrix(.Row, .Col) xx.Visible = True If xx.Enabled Then xx.SetFocus End If End With End Sub Private Sub xx_Validate(Cancel As Boolean) xx.Text = Trim(xx.Text) mfgManList.TextMatrix(Y,X)=xx.Text xx.Visible = False End Sub
1."我想让,这些文本框显示的是MSFLexGrid第一条记录" 其实窗体加载的时候本身MSFlexGrid的焦点就在第一条记录上,不过你可以强制实现: MSFlexGrid.SelectionMode = 1 '自由选择单元格 NameStr.Text=MSFlexGrid.TextMatrix(0,0) TelStr.Text=MSFlexGrid.TextMatrix(0,1)2."如果用户点击MSFLexGrid中的记录,TextBox立即就显示对应信息" Dim RowIdx As Integer,ColIdx As IntegerRowIdx = MSFlexGrid.Row:ColIdx = MSFlexGrid.Col NameStr.Text=MSFlexGrid.TextMatrix(RowIdx,ColIdx) TelStr.Text=MSFlexGrid.TextMatrix(RowIdx,ColIdx + 1)3."如果我修改了TextBox中的信息,点修改按钮后我想在MSFLexGrid就立即显示修改后的信息" 查找到当前所修改的记录,重新读取记录值并显示到对应的位置。
'**函 数 名:grid_Click
'**输 入:无
'**输 出:无
'**功能描述:
'**全局变量:
'**调用模块:
'**作 者:
'**日 期:
'**修 改 人:
'**日 期:
'**版 本:V2005.04.001
'*************************************************************************
Private Sub grid_Click()
txtid.Text = grid.TextMatrix(grid.Row, 1)
txtname.Text = grid.TextMatrix(grid.Row, 2)
Call Rss
rs.Open "select * from t_yhqxb where userid='" & txtid.Text & "'", cn, adOpenStatic, adLockReadOnly
If rs.EOF Then
For Each obj In Controls
If TypeOf obj Is xpcheckbox Then
obj.Value = Unchecked
End If
Next
End If
Do While Not rs.EOF
For Each obj In Controls
If TypeOf obj Is xpcheckbox And Trim(rs.Fields("formname")) = obj.name Then
If Trim(rs.Fields("sfky")) = "1" Then
obj.Value = Checked
Else
obj.Value = Unchecked
End If
End If
Next
rs.MoveNext
Loop
End Sub
'X、Y为窗体级变量
Dim X As Long
Dim Y As LongPrivate Sub mfgManList_Click()
With mfgManList
If .Row > 0 Then
X = .Col
Y = .Row
xx.Move .Left + .ColPos(.Col), .Top + .RowPos(.Row), .ColWidth(.Col), .RowHeight(.Row)
xx.Text = .TextMatrix(.Row, .Col)
xx.Visible = True
If xx.Enabled Then xx.SetFocus
End If
End With
End Sub
Private Sub xx_Validate(Cancel As Boolean)
xx.Text = Trim(xx.Text)
mfgManList.TextMatrix(Y,X)=xx.Text
xx.Visible = False
End Sub
其实窗体加载的时候本身MSFlexGrid的焦点就在第一条记录上,不过你可以强制实现:
MSFlexGrid.SelectionMode = 1 '自由选择单元格
NameStr.Text=MSFlexGrid.TextMatrix(0,0)
TelStr.Text=MSFlexGrid.TextMatrix(0,1)2."如果用户点击MSFLexGrid中的记录,TextBox立即就显示对应信息"
Dim RowIdx As Integer,ColIdx As IntegerRowIdx = MSFlexGrid.Row:ColIdx = MSFlexGrid.Col
NameStr.Text=MSFlexGrid.TextMatrix(RowIdx,ColIdx)
TelStr.Text=MSFlexGrid.TextMatrix(RowIdx,ColIdx + 1)3."如果我修改了TextBox中的信息,点修改按钮后我想在MSFLexGrid就立即显示修改后的信息"
查找到当前所修改的记录,重新读取记录值并显示到对应的位置。