Foxtable(狐表)用户栏目专家坐堂 → 单元格中的显示问题(已解决)


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

主题:单元格中的显示问题(已解决)

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
单元格中的显示问题(已解决)  发帖心情 Post By:2013/9/3 21:45:00 [只看该作者]

如下图在单元格中双击编辑时三行会自动变成一行,即:"酸洗抛光光面",但光标离开后又恢复为三行。

图片点击可在新窗口打开查看此主题相关图片如下:单元格中的多行.jpg
图片点击可在新窗口打开查看

要如何才能实现当前单元格宽度足够时自动显示在一行,而宽度不够时才自动换成多行显示,谢谢!。
[此贴子已经被作者于2013-9-4 10:42:31编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/9/3 22:13:00 [只看该作者]

 通过下列代码,可以得出字符串的宽度和高度,然后你根据这个值,和列的宽度去比较就行了。

Dim gc As Graphics = basemainform.CreateGraphics()
Dim size As SizeF = gc.MeasureString(Tables("进货单")(0,0) , Tables("进货单").Font)
msgbox(size.width)
msgbox(size.height)

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/9/4 8:40:00 [只看该作者]

谢谢有点甜,是想单元格宽度足够时不要将文字分成多行显示,只在一行中显示所有内容,是不是中间有换行符,但为何双击编辑时又会显示成一行? 光标离开后又变为多行了。

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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/4 8:58:00 [只看该作者]

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


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/9/4 9:34:00 [只看该作者]

新录入的数据都没有问题,现在是我系统的表中有很多这样多行显示的数据,可能是从excel中导入时造成的,但不知道怎么让它们显示为一行?


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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/4 9:37:00 [只看该作者]

把例子发上来,把换行符替换掉应该就OK了.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/4 10:01:00 [只看该作者]

在DataColChanged事件中设置代码:

Select Case e.DataCol.Name
      Case "列1","列2","列3"
           if e.NewValue > "" then
                e.NewValue = e.NewValue.Replace(vblf,"").Replace(vbcr,"")
           End if
End Select

 


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/9/4 10:41:00 [只看该作者]

谢谢,果然是换行符造成的。设置了一个通用的按钮去掉就可以了。
If CurrentTable.Rows.count > 0 Then
    For Each r As Row In CurrentTable.Rows
        For Each c As Col In CurrentTable.Cols
            If c.DataCol.IsString Then
                r(c.Name) = r(c.Name).replace(Chr(10),"")
            End If
        Next
    Next
End If

 回到顶部