网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月24日漏签0天
vb吧 关注:156,085贴子:1,166,238
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 74回复贴,共1页
<<返回vb吧
>0< 加载中...

请问如何给VB文本框都加上Ctrl+A的功能

  • 只看楼主
  • 收藏

  • 回复
  • peeppp
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如何在VB中实现按ctrl+A后,全选文本框中的文字
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 1 Then
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End If
End Sub
或者用这个
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And (KeyCode = Asc("a") Or KeyCode = Asc("A")) Then
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End If
End Sub
但如果窗体上有N个命名都不一样的文本框,有没办法做到所有文本框都一次性赋予CTRL+A的能力?


  • 阿兰月亮仙女
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
上个截图 你要达到什么效果 有点没看懂


2025-08-24 23:56:04
广告
不感兴趣
开通SVIP免广告
  • 初音七奈
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好像只能每个文本框分别写代码,我也想知道有没有更简单的办法
另外注意,KeyCode和KeyAscii不一样,字母键的KeyCode对应的是大写字母的ASCII码,而小写字母的ASCII码跟小键盘区和功能键区(F1、F2等)的KeyCode是对应的,比如小写a的ASCII码97对应的是小键盘数字1的KeyCode,所以你那个KeyDown的代码按Ctrl和小键盘的1也会全选


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
可以将N个文本框名字改成同名(控件数组),这样所有文本框都会调用同一个事件用事件Index参数区分每一个


  • 阿兰月亮仙女
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
给我感觉 这个不是要做vb版的记事本吧


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
另类实现全选的方法,可以适用多个不同名文本框
1aOzvw870eWPghf_QvbEVDg 提取码:1234


  • 阿兰月亮仙女
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼上那个代码 我有点没看懂 两个文本框 怎么用 如果焦点光标在文本框1 按下ctrl+a 只有文本框1的内容被选中 文本框2一点反应都没有


  • sunshinedsd
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
能分享下6楼的模块吗?已经找不到了


2025-08-24 23:50:04
广告
不感兴趣
开通SVIP免广告
  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1zxr4rIaY6QO5whZo2vMfxg 提取码:1234


  • peeppp
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'模块代码,名字modTextBox.bas
Attribute VB_Name = "modTextBox"
'原作者:VB吧隨風缒夢
Option Explicit
Private Declare Function GetFocus Lib "user32" () As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'全选
Public Sub SelectAll()
Dim hWndChild As Long
Dim strClassName As String
hWndChild = GetFocus() '得到当前有焦点的窗口句柄
strClassName = Space$(100)
Call GetClassName(hWndChild, strClassName, 100) '得到控件类名
If InStr(strClassName, "TextBox") Then '匹配控件类名(编译后类名会加上RT6)
Call SendMessage(hWndChild, &HB1, 0, ByVal -1&)
End If
End Sub
'窗体代码中加上下面这些代码就可以了
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyA And Shift = vbCtrlMask Then Call modTextBox.SelectAll
End Sub


  • ahsxxbl
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
鲁主的需求是一次性给所有文本框加上全选功能,不是txt1.全选功能,再txt2.全选功能。。。。。更不是在txt1中按^A同时选定txt1,txt2,txt3的内容。


  • 泰迪身菩提心
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把窗体的keypreview设定为true
在窗体的keydown或keyup事件中,发现按下ctrl+a时,遍历本窗体所有控件,如果控件类型是textbox则对其全选


  • 自己的帐号ok
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
14楼 初音的方法好
Private Sub Timer1_Timer()
Text3 = Me.ActiveControl
End Sub


  • 自己的帐号ok
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
14楼 初音的方法好
Private Sub Timer1_Timer()
Text3 = Me.ActiveControl
End Sub


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 74回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示