在使用textbox时如何判定行数已超过显示范围并将滚动条显示出来?

ggg 2000-03-23 06:54:00
...全文
614 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggg 2000-03-28
  • 打赏
  • 举报
回复
谢谢 回答
最后问题
要考率大小字体的设定啊。
如不让rich Textbox 中的文字有被选的反黑状态,要考虑滚动条。

jing 2000-03-28
  • 打赏
  • 举报
回复
Dim linecount As Integer
用二个TextBox一个有SCROLL Bar一个没有
linecount = SendMessage(txtRemark.hwnd, EM_GETLINECOUNT, 0, 0)
If linecount > Int(5 / (txt3DMessage.Height / 25)) Then //大小字体判断。
txtRemark.visible = False
txtRemark1.visible = True
Else
txtRemark.visible = True
txtRemark1.visible = False
End If
ggg 2000-03-27
  • 打赏
  • 举报
回复
你怎么知道行数超过了。
richtextbox无法改变FONT Color
newsoft 2000-03-27
  • 打赏
  • 举报
回复
当你决定了RichTextBox的大小和需显示文本的字体后,显示区域的行数已确定了。谁说RichTextBox无法改变FONT Color,如:
Private Sub Command1_Click()
RichTextBox1.Text = RichTextBox1.Text & "aaaaaaaaa" & vbCrLf
RichTextBox1.SelStart = 15
RichTextBox1.SelLength = Len(RichTextBox1.Text)
RichTextBox1.SelColor = &HFF
RichTextBox1.SelStart = 0
End Sub
Janven 2000-03-27
  • 打赏
  • 举报
回复
用API函数LineCount=SentMessage(Text1.hwnd,EM_GETLINECOUNT,0,ByVal0&)可以得到TextBox中文本的行数。
Chen_Lin 2000-03-25
  • 打赏
  • 举报
回复
你把ScrollBars=2不就成了吗?
Janven 2000-03-24
  • 打赏
  • 举报
回复
教你一招无耻的,你可以在TextBox滚动条的位置上盖上一个与文本框背景色一致的Label吧,将它的位置置在TextBox之上,当行数已超过显示范围,只需将Label.Visible置成false即可,注意得将Label按情况显示回来。怎么样?这样做不困难吧。
newsoft 2000-03-24
  • 打赏
  • 举报
回复
用RichTextBox就能自动解决了,RichTextBox在行数未超过显示范围前是不显示滚动条的,而TextBox是一开始就显示的,而且其ScrollBar属性在运行时是只读的,不可更改。当然,用TextBox和ScrollBar自己编程也可解决。

7,762

社区成员

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

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