文本框问题

intocsdn 2004-09-17 07:46:28
两个文本框紧靠在一起,我想要把鼠标移到两个文本框当中的公共边界时,可以左右拉伸这两个文本框的边框,就像WORD中用鼠标拉动表格中线一样,向左拉时左边的文本框变窄,同时右边的文本框变宽。请问该怎么实现?鼠标移动公共边界时,怎样才会变成可左右拉伸的鼠标形状?
...全文
134 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
intocsdn 2004-09-18
  • 打赏
  • 举报
回复
找到了,VB自己带的。
C:\Program Files\Microsoft Visual Studio\Common\Graphics\CursorsVE_SPLIT.CUR
wfhlxl 2004-09-18
  • 打赏
  • 举报
回复
你search .ico .cur系统自带 有office 2000 xp旧更好.
wingedsteed 2004-09-18
  • 打赏
  • 举报
回复
呵,,学习。
intocsdn 2004-09-18
  • 打赏
  • 举报
回复
两位的程序都试过了,都可以。

再问一个小问题,拉伸时的鼠标图形哪里有?(不是mousepointer=9那种双向箭头,而是像WORD中一样中间是双竖线,两边是左右箭头的那种。有没有现成的下载?还是得自己做?)
wfhlxl 2004-09-18
  • 打赏
  • 举报
回复
你是王剑吗?
intocsdn 2004-09-18
  • 打赏
  • 举报
回复
不要抢不要抢,都会有分的。
看大家这么热心,我结贴时会加分的。
wfhlxl 2004-09-18
  • 打赏
  • 举报
回复
那里是vb5.0分明就是vb6.0
laviewpbt 2004-09-18
  • 打赏
  • 举报
回复
为什么用VB5.0呢,
wfhlxl 2004-09-18
  • 打赏
  • 举报
回复
看见你的贴子后,我马上写的,所以也许会有bug,不过你贴子上的功能基本都实现了
laviewpbt 2004-09-18
  • 打赏
  • 举报
回复
你看这个行不行,行的话就赏点分啊,好几天没有得分了,心里不太舒服啊
两个textbox,一个picturebox(name属性为splitter,mousepointer为9)
Option Explicit
Private Const SPLT_WDTH As Integer = 35
Private currSplitPosX As Long
Dim CTRL_OFFSET As Integer
Dim SPLT_COLOUR As Long
Private Sub Form_Load()
CTRL_OFFSET = 5
SPLT_COLOUR = &H808080
currSplitPosX = &H7FFFFFFF
Textright = "经常见到窗体上有二个相邻的列表框,可以用鼠标任意拉动中间分割条,改变列表框大小。"
End Sub
Private Sub Form_Resize()
Dim x1 As Integer
Dim x2 As Integer
Dim height1 As Integer
Dim width1 As Integer
Dim width2 As Integer
On Error Resume Next
height1 = ScaleHeight - (CTRL_OFFSET * 2)
x1 = CTRL_OFFSET
width1 = Textleft.Width
x2 = x1 + Textleft.Width + SPLT_WDTH - 1
width2 = ScaleWidth - x2 - CTRL_OFFSET
Textleft.Move x1% - 1, CTRL_OFFSET, width1, height1
Textright.Move x2, CTRL_OFFSET, width2 + 1, height1
splitter.Move x1 + Textleft.Width - 1, CTRL_OFFSET, SPLT_WDTH, height1
End Sub
Private Sub Splitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
if Button = vbLeftButton Then
splitter.BackColor = SPLT_COLOUR
currSplitPosX = CLng(X)
Else
If currSplitPosX <> &H7FFFFFFF Then Splitter_MouseUp Button, Shift, X, Y
currSplitPosX = &H7FFFFFFF
End If
End Sub
Private Sub Splitter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If currSplitPosX& <> &H7FFFFFFF Then
If CLng(X) <> currSplitPosX Then
splitter.Move splitter.Left + X, CTRL_OFFSET, SPLT_WDTH, ScaleHeight - (CTRL_OFFSET * 2)
currSplitPosX = CLng(X)
End If
End If
End Sub
Private Sub Splitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If currSplitPosX <> &H7FFFFFFF Then
If CLng(X) <> currSplitPosX Then
splitter.Move splitter.Left + X, CTRL_OFFSET, SPLT_WDTH, ScaleHeight - (CTRL_OFFSET * 2)
End If
currSplitPosX = &H7FFFFFFF
splitter.BackColor = &H8000000F

If splitter.Left > 60 And splitter.Left < (ScaleWidth - 60) Then
Textleft.Width = splitter.Left - Textleft.Left
ElseIf splitter.Left < 60 Then
Textleft.Width = 60
Else
Textleft.Width = ScaleWidth - 60
End If
Form_Resize
End If
End Sub



wfhlxl 2004-09-18
  • 打赏
  • 举报
回复


把below code saveto .frm file
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3195
ClientLeft = 60
ClientTop = 345
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3195
ScaleWidth = 4680
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text2
Height = 495
Left = 1920
TabIndex = 1
Text = "Text2"
Top = 600
Width = 1455
End
Begin VB.TextBox Text1
Height = 495
Left = 120
TabIndex = 0
Text = "Text1"
Top = 600
Width = 1695
End
Begin VB.Label Label1
BackColor = &H00FF8080&
Caption = "Label1"
Height = 495
Left = 1800
TabIndex = 2
Top = 600
Width = 100
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim oldx As Integer
Sub setlabelpos(l As Integer, r As Integer)
If Label1.Left < Me.Text1.Left + 1500 Then
Label1.Left = Me.Text1.Left + l
Else
Label1.Left = Me.Text2.Left + Me.Text2.Width - r
End If
End Sub
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As

Single, Y As Single)
oldx = X
setlabelpos 200, 300
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As

Single, Y As Single)
Dim i
If Button = 1 Then
Label1.Move X - oldx + Label1.Left
If (Label1.Left >= Me.Text1.Left + 200 And Label1.Left <=

Me.Text2.Left + Me.Text2.Width - 300) Then
i = Me.Text1.Width
Me.Text1.Width = Label1.Left - Me.Text1.Left
Me.Text2.Width = Me.Text2.Width + (i - Me.Text1.Width)
Me.Text2.Left = Label1.Left + 100
Else
setlabelpos 189, 280
End If
End If

End Sub

Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As

Single, Y As Single)
Label1.Left = Me.Text2.Left - 100
End Sub
intocsdn 2004-09-18
  • 打赏
  • 举报
回复
回复人: wfhlxl() ( ) 信誉:100 2004-09-18 15:00:00 得分: 0


请问还需要吗?若要我马上给你粘贴过来.不要忘了给分.


-------------------------------------------------------------
贴吧,会给你分的。
wfhlxl 2004-09-18
  • 打赏
  • 举报
回复
请问还需要吗?若要我马上给你粘贴过来.不要忘了给分.
leolan 2004-09-18
  • 打赏
  • 举报
回复
這個對你應該有幫助:

ftp://ftp.softcircuits.com/vbsrc/formdsgn.zip
lujianyu1189 2004-09-18
  • 打赏
  • 举报
回复
我这里有示例,及全部源代码:要的话给我发EMAIL:lujianyu-jx@126.com
leolan 2004-09-18
  • 打赏
  • 举报
回复
關注。。。
intocsdn 2004-09-18
  • 打赏
  • 举报
回复
请赐教

1,451

社区成员

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

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