Public Class Form1
Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Const GCL_HCURSOR = (-12)
Const IDC_IBEAM = 32513
Const IDC_DUALIBEAM = 32514
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' 获取默认光标
Dim hCursor As Long
hCursor = LoadCursor(0, IDC_IBEAM)
' 设置单竖杠光标
SetClassLong(Me.Handle.ToInt32, GCL_HCURSOR, hCursor)
End Sub
Private Sub Form1_InputLanguageChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.InputLanguageChangedEventArgs) Handles Me.InputLanguageChanged
If InputLanguage.CurrentInputLanguage.LayoutName.Contains("中文") Then
' 获取默认光标
Dim hCursor As Long
hCursor = LoadCursor(0, IDC_DUALIBEAM)
' 设置双竖杠光标
SetClassLong(Me.Handle.ToInt32, GCL_HCURSOR, hCursor)
Else
' 获取默认光标
Dim hCursor As Long
hCursor = LoadCursor(0, IDC_IBEAM)
' 设置单竖杠光标
SetClassLong(Me.Handle.ToInt32, GCL_HCURSOR, hCursor)
End If
End Sub
End Class