VBA实现智能自适应文本框

实例需求:用户窗体中有两个文本框,由于第二个文本框输入的内容可长可短,因此希望实现下图中的效果。

  • 如果输入内容不超过文本框可显示长度,那么文本框采用初始宽度,固定不变
  • 如果输入内容过长,超过文本框可显示长度,那么文本框应调整宽度,确保文字可以全部显示

在这里插入图片描述

示例代码如下。

Private Sub TextBox2_Change()
    Dim iW: iW = Me.TextBox1.Width
    With Me.TextBox2
        .AutoSize = True
        If .Width < iW Then
            .AutoSize = False
            .Width = iW
        End If
    End With
End Sub

【代码解析】
第1行代码获取第一个文本框的宽度,作为参考基准。
第4行代码设置第二个文本框为自适应宽度。
第5行代码判断第二个文本框宽度是否小于基准宽度。
如果条件成立,说明文字内容较少,第5行代码取消自适应宽度。
第7行代码恢复默认宽度设置。

看似非常复杂的需求,其实充分利用控件属性,实现起来代码并不复杂。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值