怎么样在一个GRID或HFLEXGRID的一列插入选择框样式

jacky_long 2004-04-06 11:09:35
不要用隐藏后,显示的方式。是真的这一列的样式就是选择框
请高手赐教。
...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2004-04-07
  • 打赏
  • 举报
回复
' add msflexgrid and combobox ,不是很麻烦,效果还可以:

Private Sub Form_Load()
Combo1.Visible = False
With MSFlexGrid1
.Rows = 20
.Cols = 5
For i = 0 To 4
.TextMatrix(0, i) = "第" & i & "列"
Next
.Font.Size = 15
End With
For i = 0 To 10
Combo1.AddItem Chr(i + 65)
Next
Combo1.Text = ""
End Sub

Private Sub MSFlexGrid1_Click()

Dim myrow As Long, mycol As Long
With MSFlexGrid1
Combo1.FontSize = .Font.Size - 2
myrow = .MouseRow
mycol = .MouseCol
If mycol = 2 Then ' only show combobox in colum 3
Combo1.Move .Left + .ColPos(mycol) + 40, .Top + .RowPos(myrow) + 40, .ColWidth(mycol)
Combo1.Visible = True
End If
End With

End Sub

Private Sub MSFlexGrid1_LeaveCell()
MSFlexGrid1.Text = Combo1.Text
End Sub
jacky_long 2004-04-06
  • 打赏
  • 举报
回复
VSFLEXGRID,TDBGRID
华芸智森 2004-04-06
  • 打赏
  • 举报
回复
1.用VSFLEXGRID,TDBGRID控件吧...我看只能它能满足你的要求.
2.用虚拟法
例如,第4列被虚拟成选择框.
Private Sub Form_Load()
MSHFlexGrid1.Rows = 12
MSHFlexGrid1.Cols = 10
End Sub

Private Sub MSHFlexGrid1_Click()
With MSHFlexGrid1
If .MouseCol = 4 Or .MouseRow > 0 Then
.Text = IIf(.Text <> "√", "√", "")
End If
End With
End Sub

junwhj 2004-04-06
  • 打赏
  • 举报
回复
用MSFlexGrid + ComboBox可以实现,但比较麻烦,要在很多事件中编程确定ComboBox的状态和位置。

不妨试用一下FlexCell表格控件:
http://www.grid2000.com/cn/index.html
mine2000 2004-04-06
  • 打赏
  • 举报
回复
在中的combolist属性中设置A|b|c,设置showcombobutton属性的值为1

1,453

社区成员

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

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