以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]窗口显示单元格内容时右缩进 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93083) |
||||
-- 作者:jyh7081 -- 发布时间: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) |
||||
-- 作者:有点青 -- 发布时间:2016/11/20 10:44:00 -- 参考代码
Dim str As String = "12345" & vbcrlf & "678910" |
||||
-- 作者:jyh7081 -- 发布时间:2016/11/20 15:57:00 -- 没改成功。 忘了一点,原表格中的drawcell事件已经添加了选中该行时,本行单元格字符右缩进的代码。 现在想让随机窗口中显示字符的方式与单元格显示的相同。 附件:
|
||||
-- 作者:有点青 -- 发布时间: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 -- 发布时间:2016/11/20 19:55:00 -- 但是,关闭随机窗口后,主表显示缩进的字符没有还原,留下了2个空格。 |
||||
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2017/2/3 11:25:00 -- [求助]帮助修改窗口文字缩进代码 蓝版主,过年好! 发现上面的代码有点问题,就是当连续选择同一列的不同单元格时,窗口文字就不缩进了;换一列再返回点击这一列,又可以缩进了。不知是何原因? 附件:
[此贴子已经被作者于2017/2/3 11:32:36编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/2/3 11:38:00 -- 测试没问题。你用哪段代码?做个例子发上来。 |
||||
-- 作者:jyh7081 -- 发布时间:2017/2/3 11:41:00 -- 例子已发。就是当连续选择同一列的不同单元格时,窗口文字就不缩进了。 我指的是窗口,不是数据表。 谢谢!
[此贴子已经被作者于2017/2/3 11:42:25编辑过]
|
||||
-- 作者:有点色 -- 发布时间: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 |