Foxtable(狐表)用户栏目专家坐堂 → 为什么狐表的菜单可以翻译成功我自已做的翻译不成功呢?


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

主题:为什么狐表的菜单可以翻译成功我自已做的翻译不成功呢?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/9 14:27:00 [显示全部帖子]

 楼主,有木有例子?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/9 15:41:00 [显示全部帖子]

 For Each q As object In QAT.Items
    q.text = "111"
Next

For Each c As object In ConfigBar.Items
    c.text = 222
Next

看一下帮助的 菜单设计->组件参考

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/9 17:41:00 [显示全部帖子]

 同样可以,楼主你试试便知。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 13:21:00 [显示全部帖子]

 代码看着没错,你msgbox()看一下循环是否进去,还有就是一些变量的值,是否是你预期的值。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 16:33:00 [显示全部帖子]

 那么,明显是没有进到循环里面。你一步一步调试一下,就知道原因了。

 msgbox(Vars("Fname"))
[此贴子已经被作者于2012-11-10 16:34:00编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/12 15:11:00 [显示全部帖子]

 不同的控件,属性可能不一致,分开处理。

For Each c As Winform.Control In Forms(Vars("当前窗口名称")).Controls

    If TypeOf c Is Winform.NavBar Then

    Else If TypeOf c Is WinForm.TreeView Then

    Else If TypeOf c Is WinForm.TabControl Then

    Else If TypeOf c Is WinForm.Panel Then

    Else

    End If
Next

[此贴子已经被作者于2012-11-12 16:00:04编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/13 10:35:00 [显示全部帖子]

 需要把窗口打开,才可能对窗口的的控件属性进行修改。

 再有就是,没有必要对每一个窗口打开的时候都执行一遍这个函数。

 写成两个函数,一个是控制全部窗口,一个控制当前窗口的。

Dim dr As DataRow
For Each f As WinForm.Form In forms
    Dim IsOpened As Boolean = True
    If f.Opened = False Then
        IsOpened = False
        f.Open()
        f.Visible = False
    End If

    For Each c As Winform.Control In f.Controls
        If TypeOf c Is Winform.NavBar Then
            Dim bar As WinForm.NavBar = f.Controls(c.name)
            For Each nb As WinForm.NavPage In bar.NavPages
                dr = DataTables("表B").find("[en] = '" & nb.ButtonText & "'")
                If dr IsNot Nothing
                    nb.Buttontext = dr(getConfigValue("语言类别", "cn"))
                End If
                dr = DataTables("表B").find("[cn] = '" & nb.ButtonText & "'")
                If dr IsNot Nothing
                    nb.Buttontext = dr(getConfigValue("语言类别", "en"))
                End If
            Next
        Else If Typeof c Is WinForm.TreeView Then
            Dim trv As WinForm.TreeView = f.Controls(c.name)
            For Each nd As WinForm.TreeNode In trv.AllNodes
                dr = DataTables("表B").find("[en] = '" & nd.text & "'")
                If dr IsNot Nothing
                    nd.text = dr(getConfigValue("语言类别", "cn"))
                End If
                dr = DataTables("表B").find("[cn] = '" & nd.text & "'")
                If dr IsNot Nothing
                    nd.text = dr(getConfigValue("语言类别", "en"))
                End If
            Next
        Else If TypeOf c Is WinForm.TabControl Then
            Dim tc As WinForm.TabControl = f.Controls(c.name)
            For Each pg As WinForm.TabPage In tc.TabPages
                dr = DataTables("表B").find("[en] = '" & pg.Text & "'")
                If dr IsNot Nothing
                    pg.text = dr(getConfigValue("语言类别", "cn"))
                End If
                dr = DataTables("表B").find("[cn] = '" & pg.Text & "'")
                If dr IsNot Nothing
                    pg.text = dr(getConfigValue("语言类别", "en"))
                End If
            Next
        Else If TypeOf c Is WinForm.Panel Then
        Else
           
            Dim ct As String = f.Controls(c.name).text
            dr = DataTables("表B").find("[en] = '" & ct & "'")
            If dr IsNot Nothing
                f.Controls(c.name).text = dr(getConfigValue("语言类别", "cn"))
            End If
            dr = DataTables("表B").find("[cn] = '" & ct & "'")
            If dr IsNot Nothing
                f.Controls(c.name).text = dr(getConfigValue("语言类别", "en"))
            End If
           
        End If
    Next
   
    If IsOpened = False Then f.Close()
Next

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/14 10:15:00 [显示全部帖子]

 闪动的问题,对于独立的窗口,可用 Forms().Open(-1000, -1000)。我找不到好的解决方法

 第一个问题呢,以为你窗口中有panel控件,而panel控件没有Text属性。

 第二个问题,对于一句代码,可以这样简写。

 

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/14 16:17:00 [显示全部帖子]

 这个方法不适用于你的例子。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/14 16:43:00 [显示全部帖子]

 使用 stopRedraw的前提,是这个窗口已经打开,但是闪动是你这个窗口打开的过程。

 回到顶部
总数 31 1 2 3 4 下一页