以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]一个表中有多个列设为下拉窗口,如何区别使用?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91893)

--  作者:pladic
--  发布时间:2016/10/21 10:52:00
--  [求助]一个表中有多个列设为下拉窗口,如何区别使用?
在一个表中有多个列设为下拉窗口,可以吗?
如果可以,在表事件的changeedit如何区别使用?


--  作者:狐狸爸爸
--  发布时间:2016/10/21 11:25:00
--  
http://www.foxtable.com/webhelp/scr/2704.htm
http://www.foxtable.com/webhelp/scr/2705.htm
http://www.foxtable.com/webhelp/scr/2893.htm

--  作者:pladic
--  发布时间:2016/10/21 11:34:00
--  回复:(狐狸爸爸)http://www.foxtable.com/webhelp/...
我的问题是:在同一个表里,不同列要打开不同的下拉窗口。不是在不同表中打开同一个下拉窗口。
不需要通用的下拉窗口。

--  作者:有点蓝
--  发布时间:2016/10/21 11:47:00
--  
不是可以取到列名称吗,根据不同的列名设置不同的下拉

PrepareEdit事件

Select Case e.Col.Name
    Case "第一列"
            e.Col.DropForm  = "窗口1"
    Case "第二列"
            e.Col.DropForm  = "窗口2"
End Select

--  作者:pladic
--  发布时间:2016/10/21 15:32:00
--  回复:(有点蓝)不是可以取到列名称吗,根据不同的列...
4、将DropDownBox的TextChanged事件代码设置为:

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then \'如果下拉窗口已经打开
    Dim trv As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")
    If drp.Text > "" Then \'如果内容不为空
        For Each nd As WinForm.TreeNode In trv.AllNodes
            If nd.Text.IndexOf(drp.Text) >= 0 Then
                trv.StopRedraw()
                trv.SelectedNode = nd
                nd.EnsureVisible()
                trv.ResumeRedraw()
                Exit For
            End If
        Next
    End If
End If

那这段代码中的FORMS("窗口1"),窗口1也要用变量表示了?
dim wn as string =forms("窗口1")的名称
dim wn as string =forms("窗口2")的名称

Dim trv As WinForm.TreeView = Forms("wn").Controls("TreeView1")

这三行代码怎么正确写呀?



--  作者:有点蓝
--  发布时间:2016/10/21 15:53:00
--  
vars("窗口") = "窗口1"

Dim trv As WinForm.TreeView = Forms(vars("窗口") ).Controls("TreeView1")

--  作者:pladic
--  发布时间:2016/10/28 17:35:00
--  回复:(有点蓝)不是可以取到列名称吗,根据不同的列...
PrepareEdit事件

Select Case e.Col.Name
    Case "第一列"
            e.Col.DropForm  = "窗口1"
    Case "第二列"
            e.Col.DropForm  = "窗口2"
End Select

然后,在表的TextChanged事件代码中:

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then \'如果下拉窗口已经打开
    Dim trv As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")
    If drp.Text > "" Then \'如果内容不为空
        For Each nd As WinForm.TreeNode In trv.AllNodes
            If nd.Text.IndexOf(drp.Text) >= 0 Then
                trv.StopRedraw()
                trv.SelectedNode = nd
                nd.EnsureVisible()
                trv.ResumeRedraw()
                Exit For
            End If
        Next
    End If
End If

标红的语句怎么办?

ars("窗口") = "窗口1"
这行代码放在哪的事件里?
[此贴子已经被作者于2016/10/28 17:37:03编辑过]

--  作者:有点蓝
--  发布时间:2016/10/28 17:59:00
--  
PrepareEdit事件
Select Case e.Col.Name
    Case "第一列"
        e.Col.DropForm  = "窗口1"
    Case "第二列"
        e.Col.DropForm  = "窗口2"
End Select
vars("窗口") = e.Col.DropForm