Foxtable(狐表)用户栏目专家坐堂 → [求助]一个表中有多个列设为下拉窗口,如何区别使用?


  共有1856人关注过本帖树形打印复制链接

主题:[求助]一个表中有多个列设为下拉窗口,如何区别使用?

帅哥哟,离线,有人找我吗?
pladic
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
[求助]一个表中有多个列设为下拉窗口,如何区别使用?  发帖心情 Post By:2016/10/21 10:52:00 [只看该作者]

在一个表中有多个列设为下拉窗口,可以吗?
如果可以,在表事件的changeedit如何区别使用?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
回复:(狐狸爸爸)http://www.foxtable.com/webhelp/...  发帖心情 Post By:2016/10/21 11:34:00 [只看该作者]

我的问题是:在同一个表里,不同列要打开不同的下拉窗口。不是在不同表中打开同一个下拉窗口。
不需要通用的下拉窗口。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
回复:(有点蓝)不是可以取到列名称吗,根据不同的列...  发帖心情 Post By: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")

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



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/21 15:53:00 [只看该作者]

vars("窗口") = "窗口1"

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

 回到顶部
帅哥哟,离线,有人找我吗?
pladic
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
回复:(有点蓝)不是可以取到列名称吗,根据不同的列...  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部