用VB代码写出,并说一下需要什么窗体和控件。谢谢啦【vb 窗体打开光标位置】

VB获取窗口下,鼠标光标位置所在的控件句柄
先获取鼠标当前的坐标,再获取当前坐标下的对象够柄
VB 光标定位
可以 。比如:
Private Sub Command1_Click()
中间写你的代码 。然后再最后加上
text1.setfocus
End Sub
vb 光标所在位置
' 注意:
' 1. 这里纠正了一个上的误区 。
'您说: 假如selstart=7,那么光标在第2行第2列
'如果您的列坐标是从0开始的,那么行坐标也应该是从0开始
'那么实际的位置应是第1行,第2列
'
' 2. 您说: selstart=4, 那么光标在第2行第0列
'实际测试: 在vb6环境中,selstart=4时,光标是在第0行第3列,目前以下代码是按此规则来获得位置
'若需要满足您说的条件时,请寻找并恢复函数GetPoint中以下三行已注释的代码
'Result.x = 0:
'Result.y = Result.y1
'IsCharCr = True
Option Explicit
' 坐标结构
Private Type Point
x As Long' 横向坐标(列)
y As Long' 纵向坐标(行)
End Type
' 函数: 从字符串中获取坐标位置
' 参数: Text检查的字符串
'StartIndex 文字的位置
Private Function GetPoint(Text As String, StartIndex As Long) As Point
' 变量声明
Dim Result As Point' 坐标信息
Dim i As Long' 当前扫描的位置
Dim iChar As String' 当前扫描的字符
Dim IsCharCr As Boolean ' 标记上一个是否为换行符
' 初始化
Result.x = 0
Result.y = 0
IsCharCr = False
' 获得需要扫描的字符串
Text = Left(Text, StartIndex)
' 扫描文本
For i = 1 To Len(Text)
iChar = Mid(Text, i, 1)
Select Case iChar
Case vbCr' 0x0A换行符
'Result.x = 0:
'Result.y = Result.y1
'IsCharCr = True
Case vbLf' 0x10回车符
If Not IsCharCr Then
Result.x = 0:
Result.y = Result.y1
End If
IsCharCr = False
Case Else' 其他
IsCharCr = False
Result.x = Result.x1
End Select
Next
' 返回
GetPoint = Result
End Function
' 函数: 从TextBox控件中获取坐标位置(对GetPoint函数的封装)
' 参数: ControlTextBox类型控件
Private Function GetPointByTextBox(Control As TextBox) As Point
GetPointByTextBox = GetPoint(Control.Text, Control.SelStart)
End Function
' 测试代码
Private Sub Command1_Click()
Dim pt As Point
Text1.SelStart = 7
pt = GetPointByTextBox(Text1)
Call MsgBox("行:"