以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]文本框的巧妙运用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29577)

--  作者:lsy
--  发布时间:2013/3/9 14:36:00
--  [讨论]文本框的巧妙运用

      我们单位的数据库中,有个录入窗口中的文本框,其中的文本只有最后两位数字,能被选中和编辑,之前的所有数字都不可选中和编辑。

请教各位大侠,如何实现。

      完美实现:TextBox4一定要在最上面,不然与Label1紧密靠近时,会被后者遮挡。(此实例及其他实例,以后会陆续发上来)

Forms("录入窗口").Controls("Label1").Text = Left(e.Row("A01"),e.Row("A01").Length - 2)
Forms("录入窗口").Controls("TextBox4").Text = Right(e.Row("A01"),2)
Forms("录入窗口").Controls("TextBox2").Text = e.Row("A02")
Forms("录入窗口").Controls("TextBox3").Text = e.Row("A03")
Forms("录入窗口").Controls("TextBox4").Width = 160
Forms("录入窗口").Controls("TextBox4").Left = 8
Forms("录入窗口").Controls("TextBox4").Width = Forms("录入窗口").Controls("TextBox4").Width - Forms("录入窗口").Controls("Label1").Width
If Forms("录入窗口").Controls("Label1").Text.Length > = 2 Then
    Forms("录入窗口").Controls("TextBox4").Left = Forms("录入窗口").Controls("TextBox4").Left + Forms("录入窗口").Controls("Label1").Width - 4
End If

[此贴子已经被作者于2013-3-9 22:54:47编辑过]

--  作者:lsy
--  发布时间:2013/3/9 15:35:00
--  
两个文本框,行是行,我也做了,没人家一个文本框做出来好看。
[此贴子已经被作者于2013-3-9 15:38:22编辑过]

--  作者:擎天柱
--  发布时间:2013/3/9 16:22:00
--  
变通都是可以的,看我做的,还行不?

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


--  作者:擎天柱
--  发布时间:2013/3/9 16:23:00
--  
“型号:”无法选中,且无法更改。“123456789”可自由填写,且可选中
--  作者:lsy
--  发布时间:2013/3/9 16:58:00
--  
以下是引用擎天柱在2013-3-9 16:23:00的发言:
“型号:”无法选中,且无法更改。“123456789”可自由填写,且可选中
你的前面的文字长度是固定的,我的文字长度是变化的,变化要复杂些,但要看上去是一个文本框。我已经做成了,还有不少其他常用控件的创新的做法,等都完善了,一并发上来,大家分享。
--  作者:擎天柱
--  发布时间:2013/3/9 17:02:00
--  
前面的是LABEL控件,设置为最上层,底色设置为白色。放到TEXTBOX里,其他的,好办了,字符居右,设置长度...
--  作者:lsy
--  发布时间:2013/3/9 17:13:00
--  
以下是引用擎天柱在2013-3-9 17:02:00的发言:
前面的是LABEL控件,设置为最上层,底色设置为白色。放到TEXTBOX里,其他的,好办了,字符居右,设置长度...

      我是用一个文本框做底,另一个无边文本框和一个无边标签做面,底色全为window,而且文本都靠左,底框宽度和位置不变,另一个文本框的宽度和Left会随着Label字符的宽度的变化而变化,当然,Label的宽度变化在前,这样看上去,几乎就像一个文本框。


--  作者:lsy
--  发布时间:2013/3/9 17:17:00
--  

实用效果,近乎完美。

Forms("录入窗口").Controls("Label1").Width = 0
Forms("录入窗口").Controls("Label1").Width = (e.Row("A01").Length - 2)*6+6
Forms("录入窗口").Controls("TextBox4").Width = 163
Forms("录入窗口").Controls("TextBox4").Left = 4
Forms("录入窗口").Controls("TextBox4").Width = Forms("录入窗口").Controls("TextBox4").Width - Forms("录入窗口").Controls("Label1").Width
Forms("录入窗口").Controls("TextBox4").Left = Forms("录入窗口").Controls("TextBox4").Left + Forms("录入窗口").Controls("Label1").Width
Forms("录入窗口").Controls("Label1").Text = Left(e.Row("A01"),e.Row("A01").Length - 2)
Forms("录入窗口").Controls("TextBox4").Text = Right(e.Row("A01"),2)


Forms("录入窗口").Controls("TextBox2").Text = e.Row("A02")
Forms("录入窗口").Controls("TextBox3").Text = e.Row("A03")


--  作者:lsy
--  发布时间:2013/3/9 17:27:00
--  
以下是引用muhua在2013-3-9 17:26:00的发言:
呵呵,牛。

还望高手,多多指点。


--  作者:tzszw
--  发布时间:2013/3/9 18:56:00
--  
上个文件让大家看看实际效果行么?