注册 登录
编程论坛 VB6论坛

如何点击Label,然后在指定的TEXT中输出?

ictest 发布于 2022-05-16 17:24, 1958 次点击
在界面上做10个Label,每个Label中有不同的内容。再做15个Text,我任意选中某个Text,出现待输入的竖线后,双击任意某一Label,选中的Text中写入该Label内容,待输入的竖线在最后。请问这种要求怎么写呢?
6 回复
#2
eastcar2022-05-16 21:51
label_click()中写入相应代码可行吗
#3
cwa99582022-05-17 08:12
选中text的时候,做个标记,在label_Dblclick()事件里向标记对应的textbox控件里写入数据。
最好用控件数组

[此贴子已经被作者于2022-5-17 08:24编辑过]

#4
apull2022-05-17 08:58
只有本站会员才能查看附件,请 登录
#5
yuma2022-05-18 09:29
只有本站会员才能查看附件,请 登录


   
窗体拖入控件:Text1

Private Sub Form_Activate()
Text1.SetFocus  '将焦点赋予文本1
Text1.SelStart = Len(Text1.Text) '光标的位置 = 文本1的字数
End Sub
#6
风吹过b2022-05-19 22:22
为了简化编程,我Label1用了数组。这段代码只支持控件数组,如果非数组,需要修改。一共有三处引用了label1。
然后 text1 也用了数组,但 text1 里的代码也适用于非数组。

程序代码:
Option Explicit

Dim TextFocus As TextBox

Private Sub Label1_DblClick(Index As Integer)
Dim i As Long           '该变量用于保存光标位置

If Not TextFocus Is Nothing Then        '如果未选择 textbox 那么对象为了nothing ,跳转操作。防止出错
With TextFocus          '对该对象操作
    i = .SelStart       '取光标位置
    If i < Len(.Text) Then      '如果光标不在最后位置
        .Text = Left(.Text, i) & Label1(Index).Caption & Mid(.Text, i + 1)  '把原内容截成二段,把新内容拼进去
    Else
        .Text = .Text & Label1(Index).Caption      '否则直接拼到最后
    End If
    .SelStart = i + Len(Label1(Index).Caption)      '重定位光标位置=原位置+插入的长度
End With
End If
End Sub

Private Sub Text1_Click(Index As Integer)
    '保存最后活动的文本框
    Set TextFocus = Text1(Index)
    '此处保存的文本框不限于数组,只要让 textfocus 等于活动的文本框就行
    '如程序中有20个文本框,并且是20个不同的名字,但只有前15个需要这个功能,
    '那需要在使用这个功能的15文本框中写类似本行代码
End Sub


#7
yuma2022-05-20 19:23
B哥无私奉献的精神,人间大爱啊,赞!
1