Foxtable(狐表)用户栏目专家坐堂 → 窗体中的目录树AfterSelectNode事件出错?


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

主题:窗体中的目录树AfterSelectNode事件出错?

帅哥,在线噢!
有点蓝
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/21 21:56:00 [只看该作者]

名称不一致
        Case "笔记与档案_笔记与档案"
            Tables("笔记与档案_Table笔记与档案").Theme = "Office2013Red"
这样即可
If Forms("笔记与档案").Opened Then

            Tables("笔记与档案_Table短信").Theme = 改回"原来默认的样式"
            Tables("笔记与档案_Table下校").Theme = "改回"原来默认的样式"
            Tables("笔记与档案_Table笔记与档案").Theme = "改回"原来默认的样式"
    Select Case CurrentTable.Name
        Case "笔记与档案_Table短信","笔记与档案_Table下校","笔记与档案_Table笔记与档案"
            CurrentTable.Theme = "Office2013Red"
    End Select
End If

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


加好友 发短信
等级:童狐 帖子:212 积分:2275 威望:0 精华:0 注册:2020/10/3 6:58:00
  发帖心情 Post By:2020/12/21 22:00:00 [只看该作者]

代码改为:

If Forms("笔记与档案").Opened Then
            Tables("笔记与档案_Table短信").Theme = "Office2013Green"
            Tables("笔记与档案_Table下校").Theme = "Office2013Green"
            Tables("笔记与档案_Table笔记与档案").Theme = "Office2013Green"
    Select Case CurrentTable.DataTable.Name
        Case "笔记与档案_Table短信"
            Tables("笔记与档案_Table短信").Theme = "Office2013Red"
        Case  "笔记与档案_Table下校"
            Tables("笔记与档案_Table下校").Theme = "Office2013Red"
        Case Else 
            Tables("笔记与档案_Table笔记与档案").Theme = "Office2013Red"
    End Select
End If

 

此时正确,但我没有明白它的道理。两者差异?


 回到顶部
帅哥,在线噢!
有点蓝
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/21 22:35:00 [只看该作者]

名称问题

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


加好友 发短信
等级:童狐 帖子:212 积分:2275 威望:0 精华:0 注册:2020/10/3 6:58:00
  发帖心情 Post By:2020/12/21 22:45:00 [只看该作者]

为实现窗体表中能自动换行

方法一:在单元格的AfterEdit事件中写了下面的代码

If e.Col.Name = "内容"  Then
    e.Table.AutoSizeRow(e.Row.Index * 2)
End If

方法二:在BeforeDrawRow事件中写了如下代码

  '绘制某一行之前执行,通常用于动态设置行高

Tables("笔记与档案_Table笔记与档案").DefaultRowHeight = 54

方法三:手动将行高拉高,拉得再高,行里面的内容仍然一行显示 ,没有多行显示

如何办?


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


加好友 发短信
等级:童狐 帖子:212 积分:2275 威望:0 精华:0 注册:2020/10/3 6:58:00
  发帖心情 Post By:2020/12/21 22:46:00 [只看该作者]

上面的方法都没有效果,

 回到顶部
帅哥,在线噢!
有点蓝
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/21 23:03:00 [只看该作者]

If e.Col.Name = "内容"  Then
    e.Table.AutoSizeRow(e.Row.Index)
End If
AfterEdit事件只有在单元格里编辑才有效,如果是使用代码赋值的,放到datacolchanged事件

If e.DataCol.Name = "内容"  Then
    Dim idx As Integer = Tables(e.DataTable.Name).FindRow(e.DataRow)
    Tables(e.DataTable.Name).AutoSizeRow(idx)
End If

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


加好友 发短信
等级:童狐 帖子:212 积分:2275 威望:0 精华:0 注册:2020/10/3 6:58:00
  发帖心情 Post By:2020/12/21 23:27:00 [只看该作者]

1、e.Row.Index 这个说明的是行号还是行的宽,应该是行号吧!

在单元格的AfterEdit事件中改写了下面的代码 仍然无效

If e.Col.Name = "内容"  Then
    e.Table.AutoSizeRow(e.Row.Index)
End If

2、为什么手动拉高行,拉得再高,行里面的内容仍然一行显示?

3、26楼的代码 在窗口表中测试仍然无效

If e.DataCol.Name = "内容"  Then
    Dim idx As Integer = Tables(e.DataTable.Name).FindRow(e.DataRow)
    Tables(e.DataTable.Name).AutoSizeRow(idx)
End If

 回到顶部
帅哥,在线噢!
有点蓝
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/22 8:50:00 [只看该作者]

1、是行号,当前宅编辑的单元格所在的行
2、如果编辑过表事件,自动换行回取消,重启项目即可
3、如果窗口表使用了fill、datasource,到全局表事件处理

 回到顶部
总数 28 上一页 1 2 3