Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口显示单元格内容时右缩进


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

主题:[求助]窗口显示单元格内容时右缩进

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]窗口显示单元格内容时右缩进  发帖心情 Post By:2016/11/20 10:29:00 [只看该作者]

建了个窗体,放入了TextBox1控件,随时显示选中单元格内容,窗体的timertick事件原代码为:
       static ps As String = Nothing
       Dim s As String = CurrentTable.Name & "." & CurrentTable.Cols(CurrentTable.ColSel).name
       If ps <> s Then
       e.Form.controls("TextBox1").BindingField = CurrentTable.Name & "." & CurrentTable.Cols(CurrentTable.ColSel).name
       End If
       ps = s

现在想让窗体在显示单元格内容时,每个换行符产生的行右缩进2 个字符,根据蓝版的代码,改动后放入窗体的timertick事件,出错,请帮忙看看错在哪里:
        Dim arr() As String = e.Form.Controls("TextBox1").Split(vbcrlf)
        Dim str As String = ""
        For Each s1 As String In arr
            str = str & vbcrlf &  "    " &  s1.Trim(vbcr,vblf)
        Next
        e.Form.Controls("TextBox1").text = str.TrimStart(vbcr,vblf)

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/20 10:44:00 [只看该作者]

参考代码

 

Dim str As String = "12345" & vbcrlf & "678910"
msgbox(str)
str = str.Replace(chr(10), "")
str = "    " & str.Replace(chr(13), vbcrlf & "    ")
msgbox(str)


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/11/20 15:57:00 [只看该作者]

没改成功。
忘了一点,原表格中的drawcell事件已经添加了选中该行时,本行单元格字符右缩进的代码。
现在想让随机窗口中显示字符的方式与单元格显示的相同。


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

附件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/20 18:26:00 [只看该作者]

static ps As String = Nothing
Dim s As String = CurrentTable.Name & "." & CurrentTable.Cols(CurrentTable.ColSel).name
If ps <> s Then
    Dim str As String = CurrentTable.Value
    str = str.Replace(chr(10), "").replace("    ", "")
    str = "    " & str.Replace(chr(13), vbcrlf & "    ").trim()
    CurrentTable.Value = str
    e.Form.controls("TextBox1").BindingField = CurrentTable.Name & "." & CurrentTable.Cols(CurrentTable.ColSel).name
End If
ps = s

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/11/20 19:55:00 [只看该作者]

但是,关闭随机窗口后,主表显示缩进的字符没有还原,留下了2个空格。

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


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

BeforeSelChanged事件

If e.OldRange.RowSel <> e.NewRange.RowSel OrElse e.OldRange.ColSel <> e.NewRange.ColSel '如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) '获得原来选择的行
        If r.IsNull(e.OldRange.ColSel) = False
            Dim str As String
            Dim arr() As String = r(e.OldRange.ColSel).Replace(chr(10), "").split(chr(13))
            For Each s As String In arr
                str &= s.TrimStart() & vbcrlf
            Next
            r(e.OldRange.ColSel) = str.TrimEnd(vbcr,vblf)
        End If
    End If
End If

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]帮助修改窗口文字缩进代码  发帖心情 Post By:2017/2/3 11:25:00 [只看该作者]

蓝版主,过年好!
发现上面的代码有点问题,就是当连续选择同一列的不同单元格时,窗口文字就不缩进了;换一列再返回点击这一列,又可以缩进了。不知是何原因?

附件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:窗口缩进.table

[此贴子已经被作者于2017/2/3 11:32:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/3 11:38:00 [只看该作者]

测试没问题。你用哪段代码?做个例子发上来。

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/2/3 11:41:00 [只看该作者]

例子已发。就是当连续选择同一列的不同单元格时,窗口文字就不缩进了。
我指的是窗口,不是数据表。
谢谢!
[此贴子已经被作者于2017/2/3 11:42:25编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/3 11:42:00 [只看该作者]

static ps As String = Nothing
Dim s As String = CurrentTable.RowSel & "," & CurrentTable.ColSel
If ps <> s Then
    Dim str As String = CurrentTable.Value
    str = str.Replace(chr(10), "").replace("    ", "")
    str = "    " & str.Replace(chr(13), vbcrlf & "    ").trim()
    CurrentTable.Value = str
    e.Form.controls("TextBox1").BindingField = CurrentTable.Name & "." & CurrentTable.Cols(CurrentTable.ColSel).name
End If
ps = s

 回到顶部
总数 12 1 2 下一页