以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口中的控件代码可以通过其他控件来触发执行吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26237)

--  作者:zpx_2012
--  发布时间:2012/11/27 18:53:00
--  窗口中的控件代码可以通过其他控件来触发执行吗?

各位老师,

 

如下图两个以上的目录树,

 


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

 

如果勾选或取消勾选左边的节点复选框时通过代码自动更改右边对应节点的复选框的选中状态,

 

我想问的是在左边目录树点选时可以触发右边目录树节点的AfterCheckNode事件代码,让它执行吗?

 


谢谢!


--  作者:czy
--  发布时间:2012/11/27 20:08:00
--  

这样?

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView2")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Text.IndexOf(e.Node.name) >= 0 Then
        nd.Checked = e.Node.Checked
    End If
Next


--  作者:zpx_2012
--  发布时间:2012/11/27 20:42:00
--  

谢谢CZY,两个目录树同时选中的代码已经有了

tr1.SelectedNode = e.Node
    For Each nd As WinForm.TreeNode In tr2.AllNodes
      If nd.FullPath = e.node.FullPath Then
         nd.Checked = e.Node.checked
         tr2.SelectedNode = nd
      End If
    Next

 

我想请教的是,点选左边的目录树节点的复选框时,通过上述代码,右边的对应节点的复选框状态也会改变,这个通过代码改变右边复选框的动作能否触发右边目录树的AfterCheckNode事件代码自动执行?

 

 

 

 

 

 


[此贴子已经被作者于2012-11-27 20:42:51编辑过]

--  作者:czy
--  发布时间:2012/11/27 21:09:00
--  

按理是肯定能行的。

不过刚才试了一下,只有在右侧目录树节点选择过一次(触发过一次),然后在左侧操作才会起效,原因我就搞不明白了。


--  作者:zpx_2012
--  发布时间:2012/11/27 21:48:00
--  
谢谢了,因为我的两个目录树的数据是来自不同的表,如果能在一个目录树中的操作能触发另一个目录树中的事件这样更新两个表的数据代码就简洁了很多(就好像同时操作了两个目录树一样),再说吧,我看看还有没有其他办法。
--  作者:e-png
--  发布时间:2012/11/27 22:01:00
--  

在afterchecknode 和 afterselectnode同时设置一样的代码,好像可以。

 

不过既然两个目录树一样,不如直接在一个目录树中同时操作两个表呢。


--  作者:zpx_2012
--  发布时间:2012/11/27 22:16:00
--  

呵呵,我那个只是举个例子而已,实际的数据表一个是查看编辑权限,一个是工作流的设置,排在一起,主要是方便设置者操作时一目了然的看见而已。

 

因为我要问的只是在一个目录树中操作如何触发另外一个目录树的事件,所以就没有贴出图来。就象datacolchanged事件一样,通过任何其他地方的代码改变都可以让其执行。


--  作者:lin_hailun
--  发布时间:2012/11/28 10:30:00
--  
 要么用窗口的全局事件,要么,定义成内部函数,在需要调用的时候执行一下这个内部函数。
[此贴子已经被作者于2012-11-28 10:30:31编辑过]