以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 怎么获取Table控件中的当前选择数据行? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129788) |
||||
-- 作者:zcf2144 -- 发布时间:2019/1/6 12:37:00 -- 怎么获取Table控件中的当前选择数据行? 请教下各位老师, 现在想用MouseDown从Table控件中拖动出一条自定义结构变量DragData作为DoDragDrop的data ,但是发现没办法从Table控件中获取当前选择的数据行. 结构变量定义如下: Public Structure DragData Public dtRow As DataRow \'对应DataRow Public MainKey As String \'主键列名 End Structure MouseDown事件将被添加到Table控件的Winform.Control中. 如何从这个Winform.Control获取当前选择的数据行? 还是说我思路错了?应该将MouseDown事件代码添加到其他对象? |
||||
-- 作者:有点甜 -- 发布时间:2019/1/6 20:46:00 --
应该无法实现你这种操作的。在table里面拖动鼠标,是选定行的操作。无法实现拖拽的。 |
||||
-- 作者:zcf2144 -- 发布时间:2019/1/8 16:40:00 -- 甜老师你好, 在Table控件中拖动已经实现,现在问题是不知道如何给table控件动态添加MouseDown事件并获取选定行的Datarow,请问有公开的属性可以操作吗? 代码如下: Public Sub Table_MouseDown(ByVal Sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) \'定义Table MouseDown事件获取指定数据 If Typeof Sender Is System.Windows.Forms.Control ’由于Winform.Control跟Winform.Table没有MouseDown事件。Sender只能是System.Windows.Forms.Control类型. TempDragData.dtRow = ’获取事件触发时的选定行 TempDragData.MainKey = ‘获取事件发生时的选定列名 End if End Sub 我也想过用Click事件做这个功能,但是试了一下发现必须要点击完成一次之后才能获取到数据。所以只能在MouseDown时便给TempDragData赋值 TempDragData定义如下: Public Structure DragData Public dtRow As DataRow \'对应DataRow Public MainKey As String \'主键列名 End Structure Public TempDragData As DragData |
||||
-- 作者:有点甜 -- 发布时间:2019/1/8 16:54:00 -- 以下是引用zcf2144在2019/1/8 16:40:00的发言:
甜老师你好, 在Table控件中拖动已经实现
请上传实现了拖动的例子。
绑定事件,参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=108715&skin=0
|
||||
-- 作者:zcf2144 -- 发布时间:2019/1/8 17:04:00 -- 论坛添加附件这个按钮好像没用了,我上传到我的服务器了,麻烦老师通过这个链接下载http://oa.mactorvalve.com:8080/project/example.rar |
||||
-- 作者:zcf2144 -- 发布时间:2019/1/8 17:19:00 -- 看了老师您的例子,通过给C1FlexGrid添加事件实现。不过我对C1FlexGrid不太熟悉,请问如何获取其对应Datatable以及触发事件位置的DataRow? 或者在哪里可以找到这个控件的属性方法列表
|
||||
-- 作者:有点甜 -- 发布时间:2019/1/8 17:27:00 --
|
||||
-- 作者:zcf2144 -- 发布时间:2019/1/9 13:00:00 -- 老师好,再次麻烦你, 看了你的例子,发现最终返回的数据还是C1.Win.C1FlexGrid.Row类型。 请问是否有方法从这个控件获取其数据源?即其DataTable
|
||||
-- 作者:有点甜 -- 发布时间:2019/1/9 15:28:00 -- 1、给grid设置name属性,如
Tables("表A").grid.name = "表A"
2、这样,可以这样获取到对应的表,如
Dim name = sender.name msgbox(name) Dim t = Tables(name) Dim dt = t.datatable |