以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 单元格中的显示问题(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39895) |
||||
-- 作者:zpx_2012 -- 发布时间:2013/9/3 21:45:00 -- 单元格中的显示问题(已解决) 如下图在单元格中双击编辑时三行会自动变成一行,即:"酸洗抛光光面",但光标离开后又恢复为三行。 [此贴子已经被作者于2013-9-4 10:42:31编辑过]
|
||||
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2013/9/4 8:40:00 -- 谢谢有点甜,是想单元格宽度足够时不要将文字分成多行显示,只在一行中显示所有内容,是不是中间有换行符,但为何双击编辑时又会显示成一行? 光标离开后又变为多行了。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/9/4 8:58:00 --
|
||||
-- 作者:zpx_2012 -- 发布时间:2013/9/4 9:34:00 -- 新录入的数据都没有问题,现在是我系统的表中有很多这样多行显示的数据,可能是从excel中导入时造成的,但不知道怎么让它们显示为一行? |
||||
-- 作者:Bin -- 发布时间:2013/9/4 9:37:00 -- 把例子发上来,把换行符替换掉应该就OK了. |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/9/4 10:01:00 -- 在DataColChanged事件中设置代码: Select Case e.DataCol.Name
|
||||
-- 作者:zpx_2012 -- 发布时间: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 |