以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]目录树节点编辑问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124509)

--  作者:cqlwsam
--  发布时间:2018/9/7 16:59:00
--  [求助]目录树节点编辑问题

如图:

 

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图16570204224153.png
图片点击可在新窗口打开查看

 

如图,我在编辑窗口目录树时,如果选择“新分组”时,它的值只能从一种值中选一个?能行吗?


--  作者:有点蓝
--  发布时间:2018/9/7 17:03:00
--  
如果使用系统的编辑目录树功能,这个没有办法。

如果是自己做的编辑窗口,可以在窗口放一个组合框,进行选择

--  作者:cqlwsam
--  发布时间:2018/9/7 17:07:00
--  
使用treeview弄的。
--  作者:有点蓝
--  发布时间:2018/9/7 17:09:00
--  
可以在窗口放一个组合框,进行选择
--  作者:cqlwsam
--  发布时间:2018/9/7 18:31:00
--  

如图:

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图18720122353738.png
图片点击可在新窗口打开查看

 

根据你的提示,当我点击重命名、增加分组或增加子项时,就直接将鼠标点位在旁边的recordgrid中相应的位置进行编辑。如何将鼠标点位在recordgird中相应的位置。如:定点在年龄段后面的空格中。

[此贴子已经被作者于2018/9/7 18:31:50编辑过]

--  作者:cqlwsam
--  发布时间:2018/9/7 18:59:00
--  

我目前的代码:

 

Dim txt As String = e.sender.name
Dim tr As WinForm.TreeView = e.Form.controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
Dim bctr  = e.Form.Controls("RecordGrid1").BaseControl
If txt="Btn_edit" Or txt="Btn_addgroup" Or txt="Btn_addsubgroup" Or txt="Btn_insert" Then
    If nd.ParentNode Is Nothing Then
        For Each r As object In bctr.Rows
            If r.caption = "年龄段" Then
                ???

                exit for
            End If
        Next
    Else
        For Each r As object In bctr.Rows
            If r.caption = "项目名称" Then
                ???

                exit for
            End If
        Next
    End If
End If

 

里面的那个???就不知道怎么搞了。谢谢!

[此贴子已经被作者于2018/9/7 21:15:50编辑过]

--  作者:有点蓝
--  发布时间:2018/9/7 21:18:00
--  
你要在recordgrid年龄段编辑,然后更新选中的树节点?到绑定的表的datacolchanged事件写代码

If e.DataCol.name = "年龄段" AndAlso e.newvalue > "" AndAlso forms("诊疗项目维护").opened
    Dim tr As WinForm.TreeView = e.Form.controls("TreeView1")
    If tr.SelectedNode IsNot Nothing Then
        tr.SelectedNode.text = e.newvalue
    End If
End If

--  作者:cqlwsam
--  发布时间:2018/9/7 21:34:00
--  

我只是想实现点击那个按钮后,就直接把鼠标定位在recordgrid相应的位置。通过我的代码能实现吗?

 

此曾经回复过这样的内容:

Dim bctr  = e.Form.Controls("RecordGrid1").BaseControl
msgbox(bctr.Rows(bctr.RowSel).caption)
msgbox(bctr.Rows(bctr.RowSel)(1))

For Each r As object In bctr.Rows
    If r.caption = "信息编号" Then
        msgbox(r(1))
        Exit For
    End If
Next
[此贴子已经被作者于2018/9/7 21:34:46编辑过]

--  作者:cqlwsam
--  发布时间:2018/9/7 21:56:00
--  
既然能找到r(1)的值,就应该能定位。就是不知道使用什么方法?select?
--  作者:有点蓝
--  发布时间:2018/9/7 21:57:00
--  
Dim bctr  = e.Form.Controls("RecordGrid1").BaseControl
bctr.Select(2,1)
bctr.StartEditing