以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]recordgrid控件click事件 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=95023) |
||||
-- 作者:cqlwsam -- 发布时间:2017/1/8 14:14:00 -- [求助]recordgrid控件click事件 如截图,窗口中有两个recordgrid控件,单击其中任一控件中的某行,获取该行第一列的标题(原表中的列标题),然后从“实验室检查维护”表中筛选相同的行,并将其正常值及临床意义赋值给窗口的正常值及临床意义文本框。如何实现?我从三方控件的事件思路不是很清晰,请帮帮忙。谢谢! |
||||
-- 作者:有点色 -- 发布时间:2017/1/8 14:37:00 -- 一个很简单的事,你竟然纠结了那么好几天。
|
||||
-- 作者:cqlwsam -- 发布时间:2017/1/8 14:44:00 -- 跪谢!!!那如果窗口中的recordgrid控件是动态添加的,不知道是什么名称?个数也不祥?这个又怎么办? |
||||
-- 作者:有点色 -- 发布时间:2017/1/8 16:14:00 -- 以下是引用cqlwsam在2017/1/8 14:44:00的发言:
跪谢!!!那如果窗口中的recordgrid控件是动态添加的,不知道是什么名称?个数也不祥?这个又怎么办?
你动态添加的时候,把绑定的代码也写上就可以啊。 |
||||
-- 作者:cqlwsam -- 发布时间:2017/1/8 19:14:00 -- 由于原项目中,recordgrid是动态添加的,点击选择不同行,加载不同的recordgrid,个数和名称也不相同。我在窗口的click的全局事件中添加: If e.Sender.Gettype().Tostring()="RecordGrid" Then Dim g1 As C1.Win.C1FlexGrid.C1FlexGridBase = e.Form.Controls(e.sender.name).baseControl AddHandler g1.Click, AddressOf grid_Click End If 不能实现点击recordgrid中某一行向正常值和临床意义文本框中赋值。
|
||||
-- 作者:cqlwsam -- 发布时间:2017/1/8 21:14:00 -- 搞定。代码如下: If TypeOf e.Sender Is winform.recordgrid Then Dim g1 As C1.Win.C1FlexGrid.C1FlexGridBase = e.Form.Controls(e.sender.name).baseControl AddHandler g1.Click, AddressOf grid_Click End If |
||||
-- 作者:有点色 -- 发布时间:2017/1/8 22:37:00 -- 1、为什么要用e.sender?
2、你动态添加,肯定是会写有代码的吧?你把绑定事件的代码和它写在一起,就可以了。 |
||||
-- 作者:cqlwsam -- 发布时间:2017/1/8 23:06:00 -- 我是针对整个项目写的内部函数。只是其中的部分需要使用正常值和临床意义。这样也能实现。 弱弱地问一个问题: 原窗口添加新窗口后,原来窗口中的控件名称也保持不变吗?
|
||||
-- 作者:有点色 -- 发布时间:2017/1/8 23:13:00 -- 回复8楼,控件名称不变。 |
||||
-- 作者:cqlwsam -- 发布时间:2017/1/10 16:44:00 -- [求助]recordgrid控件click事件 直接在窗口中添加recordgrid控件,能达到效果。但是如果采用动态添加窗口和控件的方式就不行了。找不到原因。谢谢!
|