vsflexgrid头部的点击事件
如图,我如何实现头部的checkbox的点击事件?
想实现如下的功能。
1 点击头部(0,0)的checkbox
2 如果当前checkbox为选中状态,则将所有行的checkbox变为未选中状态。同时头部的也变为未选中状态。
3 如果当前checkbox为未选中状态,则将所有行的checkbox变为选中阻航太,同时头部变为选中状态。
我实现的代码如下
With grdList
'// リストボックスで選択できる様に設定
.SelectionMode = flexSelectionByRow
.AllowSelection = False
.Editable = True
。。。。
End With
Sub grdStore_Click()
On Error Resume Next
Call DisplayMessage("test","grdStore_Click........" & CStr(grdStore.Row) & ":" & CStr(grdStore.Col),<%=FRM_DISP_OKONLY%>)
End Sub
DisplayMessage是一个表示消息的对话框。
但是为什么grdStore.Row和grdStore.Col不能表示head部的坐标呢?
麻烦各位帮帮我。 回复 1楼victor2DL的帖子
感谢对该问题的反馈。
为了帮助你解决问题,请问你提到的grdStore.Row和grdStore.Col是VSFlexGrid的Row和Col属性么?
这两个属性是指的CurrentCell的位置。当Row属性是0到FixedRows - 1 之间,指的就是Fixed区域。
请参考产品文档:
http://helpcentral.componentone.com/nethelp/vsflexgrid8/#!Documents/rowproperty.htm
根据你的描述,如果让选中和不选中,涉及到你的代码逻辑,可以使用相关的语句去判断,然后全选或非全选checkbox。
如果选择和非选择checkbox可以参考文档:
http://helpcentral.componentone.com/nethelp/vsflexgrid8/#!Documents/cellcheckedproperty.htm 感谢你的回答。
>> 为了帮助你解决问题,请问你提到的grdStore.Row和grdStore.Col是VSFlexGrid的Row和Col属性么?
是的。FixedCols = 1 FixedRows = 1
你给的例子,是在外面添加了一个button?
那么我不再另外添加button,只想用头部的check来实现这个buttong的功能,如何实现呢?
。
grdStore_Click() 只能判断出选中行(CurrentCell) 的行和列,不能判断头部的?
谢谢你的回答和指教 回复 3楼victor2DL的帖子
谢谢您提供的信息。
点击Fixed区域的checkbox,Click事件可以触发。(触发后判断如果是col=0, row=0,就执行整列的check/uncheck操作)
或许你可以选择MouseDown事件,或是提供一个简单的示例,我们可以帮你看看是哪里出问题。 不好意思,你是否可以给我一个例子?
我目前的代码实现之后,最开始的坐标是(1,1)。不知道是什么原因。
应该是VSFlexGrid 初始化的时候得属性设置有问题了。
With grdStore
'// フォント設定
.FontSize = Grid_Font_Size
.FontName = "<%=FONT_SYS%>"
.ScrollBars = <%=flexScrollBarVertical%> '// 垂直
'// リストボックスで選択できる様に設定
.SelectionMode = <%=flexSelectionByRow%>
.AllowSelection = False
.Editable = True
'// 選択行の色を設定
.BackColorSel = <%=GRID_BACKCOLORSEL_DISP%>
.ForeColorSel = <%=GRID_FORECOLOR_FIXED%>
'// 列の設定
.Cols = 3 '// 列の数
'// 最後(右端)の列の幅を自動調節する
.ExtendLastCol = True
End With
多谢指教 With grdStore
'//-------------------------------------------------------
'// 全体設定
'//-------------------------------------------------------
'/ フォーカスセルの周りに枠線を表示しない
.FocusRect = <%=flexFocusNone%>
'//-------------------------------------------------------
'// 詳細設定
'//-------------------------------------------------------
'//ヘッダの設定
.FormatString = strTitle
.RowHidden(0) = False
.Cell(<%=flexcpChecked%>,0,0) = 2
.MergeCells = grdFlexMergeFixedOnly
.MergeRow(0) = True
'//-------------------------------------------------------
'// 列の設定
'//-------------------------------------------------------
.ColWidth(0) = 400
.ColDataType(0) = grdFlexDTBoolean
'// コード
.ColWidth(1) = 1400
.ColAlignment(1) = <%=flexAlignLeftCenter%>
'// 名称
.ColWidth(2) = 2250
.ColAlignment(2) = <%=flexAlignLeftCenter%>
.Row = -1
End With 回复 5楼victor2DL的帖子
你好。
我这里没有示例。
你的问题我们收到了,测试后给你代码。 麻烦你了。 回复 8楼victor2DL的帖子
不用客气。 回复 8楼victor2DL的帖子
你好。
使用的是最新版进行测试,测试Demo如下:
请使用最新版VSFlexGrid测试,下载链接:
http://www.gcpowertools.com.cn/products/download.aspx?pid=7
这个Demo未重现你的问题,如果你有什么不同,欢迎提出来。
页:
[1]
2