victor2DL 发表于 2015-7-13 10:45:00

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........" &amp; CStr(grdStore.Row) &amp; ":" &amp; CStr(grdStore.Col),<%=FRM_DISP_OKONLY%>)
    End Sub

DisplayMessage是一个表示消息的对话框。
但是为什么grdStore.Row和grdStore.Col不能表示head部的坐标呢?

麻烦各位帮帮我。

Alice 发表于 2015-7-13 14:05:00

回复 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

victor2DL 发表于 2015-7-13 14:32:00

感谢你的回答。
&gt;&gt; 为了帮助你解决问题,请问你提到的grdStore.Row和grdStore.Col是VSFlexGrid的Row和Col属性么?
是的。FixedCols = 1 FixedRows = 1
你给的例子,是在外面添加了一个button?
那么我不再另外添加button,只想用头部的check来实现这个buttong的功能,如何实现呢?

grdStore_Click() 只能判断出选中行(CurrentCell) 的行和列,不能判断头部的?
谢谢你的回答和指教

Alice 发表于 2015-7-13 17:23:00

回复 3楼victor2DL的帖子

谢谢您提供的信息。
点击Fixed区域的checkbox,Click事件可以触发。(触发后判断如果是col=0, row=0,就执行整列的check/uncheck操作)
或许你可以选择MouseDown事件,或是提供一个简单的示例,我们可以帮你看看是哪里出问题。

victor2DL 发表于 2015-7-13 18:09:00

不好意思,你是否可以给我一个例子?
我目前的代码实现之后,最开始的坐标是(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

多谢指教

victor2DL 发表于 2015-7-13 18:10:00

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

Alice 发表于 2015-7-14 16:05:00

回复 5楼victor2DL的帖子

你好。
我这里没有示例。
你的问题我们收到了,测试后给你代码。

victor2DL 发表于 2015-7-14 16:09:00

麻烦你了。

Alice 发表于 2015-7-14 16:35:00

回复 8楼victor2DL的帖子

不用客气。

Alice 发表于 2015-7-15 10:01:00

回复 8楼victor2DL的帖子

你好。
使用的是最新版进行测试,测试Demo如下:



请使用最新版VSFlexGrid测试,下载链接:
http://www.gcpowertools.com.cn/products/download.aspx?pid=7

这个Demo未重现你的问题,如果你有什么不同,欢迎提出来。
页: [1] 2
查看完整版本: vsflexgrid头部的点击事件