如何在DataGrid中设置某字段为下拉框形式?

youhwa 2003-11-12 08:45:10
我想在DataGrid中设置某字段为下拉框形式,即点击倒三角按钮,出现选择列表。
请各位大虾赐教,不尽感激!最好能给出例子 :-)
...全文
46 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flc 2003-11-12
  • 打赏
  • 举报
回复
XUEXI 学习
cjhyahoo 2003-11-12
  • 打赏
  • 举报
回复
delphi里有这个东西,
好象vb里没有哦,
不过可以在datagrid上加一个combox来实现
lihonggen0 2003-11-12
  • 打赏
  • 举报
回复
还有你可以考虑用第三方控件,如vsflexgrid
vsflexgrid实现这个很容易
lihonggen0 2003-11-12
  • 打赏
  • 举报
回复

'----------------------------------------------------------------------------
'
'Author:lihonggen0
'Date:2003-6-18
'功能:DataGrid1上附加COMBO和CheckBox
'在form上添加一个DataGrid1、一个COMBO和一个CheckBox控件放到屏幕上任何位置都可以
'----------------------------------------------------------------------------

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Select Case DataGrid1.Col
Case 1
Check1.Visible = False
Combo1.Visible = True
Combo1.Width = DataGrid1.Columns(DataGrid1.Col).Width + 50
Combo1.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
Combo1.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight) + (DataGrid1.HeadLines) * 195
Combo1.SetFocus
If DataGrid1.Columns(DataGrid1.Col).Text <> "" Then
Combo1.Text = DataGrid1.Columns(DataGrid1.Col).Text
End If
Case 2
Check1.Visible = True
Check1.Width = DataGrid1.Columns(DataGrid1.Col).Width + 50
Check1.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
Check1.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight) + (DataGrid1.HeadLines) * 195
Check1.SetFocus
Combo1.Visible = False
Case Else
Combo1.Visible = False
Check1.Visible = False
End Select

End Sub

Private Sub Form_Load()
'工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)

Dim CN As New ADODB.Connection '定义数据库的连接
Dim Rs As New ADODB.Recordset
CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"

CN.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from employees", CN, adOpenDynamic, adLockOptimistic


Set DataGrid1.DataSource = Rs
End Sub
cansum396 2003-11-12
  • 打赏
  • 举报
回复
用vsflexgrid
射天狼 2003-11-12
  • 打赏
  • 举报
回复
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
On Error Resume Next
With DataGrid1
Combo1.Move .Left + .Columns(.Col).Left, .Top + .RowTop(.Row), .Columns(.Col).Width
End With
End Sub
longki 2003-11-12
  • 打赏
  • 举报
回复

DBGrid右键属性/layout,选择Column,再将下面左边最后一个选项Button选上即可!
试试!

7,775

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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