怎样能够让textbox不能获得焦点,又不让里面的文字变灰?在线等

cuisb 2002-10-31 05:15:12
怎样能够让textbox不能获得焦点,又不让里面的文字变灰?有人告诉我把label的背景设成透明罩在textbox上,但是他们不在同一个层次上,根本不能把label罩上。

或者其他的什么控件,只要能够让他有滚动条能够显示多行文本,又不能点中就行!
...全文
275 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuisb 2002-11-01
  • 打赏
  • 举报
回复
怎么取得txt1里的文本的高度?
cacoda 2002-11-01
  • 打赏
  • 举报
回复
方法:
1、画2个picturebox(pic1和pic2),pic2画在pic1里面,pic2.enabled=false
2、textbox画在pic2里面(txt1)
3、在pic1里画scrollbox,贴在pic2的右边
4、load text到txt1,将txt1的高度设成文本的高度,pic2.height=txt1.height
5、编写滚动代码,滚动pic2
6、应该就可以了
cuisb 2002-11-01
  • 打赏
  • 举报
回复
不用考虑Tab键,只让他被鼠标点时没有反应就行
cuisb 2002-11-01
  • 打赏
  • 举报
回复
显示所有文本?
cuisb 2002-11-01
  • 打赏
  • 举报
回复
放在PictureBox里怎么让他能够利用滚动条现实所有的文本呢
w18ily 2002-11-01
  • 打赏
  • 举报
回复
gz!
playyuer 2002-11-01
  • 打赏
  • 举报
回复
放在 PictureBox 里!
PuctureBox1.Enable = False
LoneHome 2002-11-01
  • 打赏
  • 举报
回复
给你个损招+绝招:

Private Sub Text1_GotFocus()
text2.SetFocus
End Sub


'text2可以换成你窗体上其它的有setfocus方法的控件
of123 2002-11-01
  • 打赏
  • 举报
回复
*****绝对绝招*****

把textbox放到一个frame中,设置
frame.enabled = false
frame.boardstyle = none
taoyi 2002-11-01
  • 打赏
  • 举报
回复
运用钩子用自己写的窗口函数拦它的WM_SETFOCUS消息吧,这样可以真正的让它永远也没有焦点的。代码就自己写吧,我懒得写啦,嘿嘿
playyuer 2002-11-01
  • 打赏
  • 举报
回复
一般TextBox.Height即可!

或参考下面程序:
将 Width 换为 Height
问题: 如何得到一个某种字体的字符串是多少个象素的长度? 不是len(string)!
解答: 编成函数,借用一个 PictureBox
'Object: Form1、Picture1、Command1
Option Explicit
Public Function GetTextWidth(TextX As String, FontX As stdole.StdFont, PictureX As VB.PictureBox, Optional FromScale As VBRUN.ScaleModeConstants = vbHimetric, Optional ToScale As VBRUN.ScaleModeConstants = vbPixels) As Double
'保留原值,Clone 该字体为今后恢复,也可没必要
Dim Temp As New stdole.StdFont
Temp.Bold = FontX.Bold
Temp.Charset = FontX.Italic
Temp.Name = FontX.Name
Temp.Size = FontX.Size
Temp.Strikethrough = FontX.Strikethrough
Temp.Underline = FontX.Underline
Temp.Weight = FontX.Weight
Set PictureX.Font = FontX
GetTextWidth = PictureX.ScaleX(PictureX.TextWidth(TextX), FromScale, ToScale)
'恢复
Set PictureX.Font = Temp
End Function
'测试
Private Sub Command1_Click()
'VBA.MsgBox Me.ScaleX(Me.TextWidth("aa"), vbHimetric, vbPixels)
'VBA.MsgBox GetTextWidthPixels("aa", Me.Font, Picture1)
Dim x As New stdole.StdFont
x.Size = 12
VBA.MsgBox GetTextWidth("a阿", x, Picture1)
End Sub
cuisb 2002-11-01
  • 打赏
  • 举报
回复
?????
blademan 2002-10-31
  • 打赏
  • 举报
回复
就算能用东西罩上,也一样可以用tab键选中啊……肯定不行……
blademan 2002-10-31
  • 打赏
  • 举报
回复
有难度……太有难度了……如果是用鼠标点就要没反应,如果用tab键就要跳到下一个……难……:(
这是谁提的要求?老板?
死拉死拉地……
cuisb 2002-10-31
  • 打赏
  • 举报
回复
我也试过在gotfocus里设,但是那样的结果和从一开始控件就不能获得焦点是不一样的。
我就是想知道怎样才能不在每一个控件的getfocus里编程而使焦点停留在原来的控件上?
hpjacky 2002-10-31
  • 打赏
  • 举报
回复
在TEXTBOX的GetFocus事件中加入如下:

SendKeys "+" & "{TAB}"

或 SendKeys "{TAB}"
blademan 2002-10-31
  • 打赏
  • 举报
回复
可以这样做:先把这个textbox的locked属性设为true(保险起见),然后把scrollbars设为3-both,并把multiline设为true,最后编程:
在textbox的GotFocus()事件(获得焦点时触发)中把焦点设到别的控件上,比如command1.setfocus等。
也可以记录下上一个选中的控件是哪一个,把焦点设回去,但是这样比较麻烦,需要在每个控件的gotfocus事件中编程……

这个办法我试过了,应该没有问题

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧