关于修改TextBox的光标(Caret)的疑问,大家来帮忙看看~~~

cloud_soft 2004-11-26 03:34:47
我想在VB.NET中修改TextBox的光标,代码如下
Private Declare Function CreateCaret Lib "user32" (ByVal Hwnd As Integer, ByVal hBitmap As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer) As Integer
Private Declare Function ShowCaret Lib "user32" (ByVal Hwnd As Long) As Integer
Private Declare Function GetFocus Lib "user32" () As Integer

Private Sub ChangeCur()
Dim tagHwnd As Integer
Dim picHwnd As Integer

tagHwnd = GetFocus()
picHwnd = picCaret.Handle.ToInt32

CreateCaret(tagHwnd, picHwnd, 0, 0)
ShowCaret(tagHwnd)
End Sub

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
ChangeCur()
End Sub

Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
ChangeCur()
End Sub

picCaret是一个PictureBox,随便选择了一个icon作为图片

VB.NET中API声明与VB6有些区别,主要是变量类型位数变了,不知道API的声明是否正确?
上面的代码中,运行效果是,在KEYUP和KEYDOWN事件触发后,TextBox的光标消失了,
感觉是CreateCaret的第2个参数hBitMap取得有问题(picHwnd = picCaret.Handle.ToInt32)
大家来帮帮忙吧:)
...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloud_soft 2004-11-29
  • 打赏
  • 举报
回复
斑竹呢,来帮帮忙啊
cloud_soft 2004-11-29
  • 打赏
  • 举报
回复
UP UP UP O_o
haoztao 2004-11-26
  • 打赏
  • 举报
回复
up一下。。。。呵呵

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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