5月 02
VB2005 會自動切換成全形
VB2005 .Net.瀏覽:[ 259user+133機器人 ]給個回應
我相信應該有些人會遇到跟我一樣的問題
從vb2005編譯出來的textbox,使用者在輸入時會自動切換成全型
甚至在開發視窗裡也會有這樣的問題,這的確是一件很煩人的事
輸入中文倒是沒影響,不過輸入英數就會變成全形
ABCD → ABCD
1234 → 1234
問GOOGLE大神,他說要裝修補程式:KB925488
不過我裝了也沒啥差別,沒有放上來,有需要的人在寫信給我吧!
在藍色小舖上有看到一個解決的方法,有需要的人拿去用看看
我自己呢?跟著做了之後,有些有用有些無用
先宣告一各類別
Visual Basic:
-
Public Class ImeForm
-
-
Inherits System.Windows.Forms.Form
-
-
Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hwnd As Integer) As Integer
-
Private Declare Function ImmGetConversionStatus Lib "imm32.dll" (ByVal himc As Integer, ByRef lpdw As Integer, ByRef lpdw2 As Integer) As Integer
-
Private Declare Function ImmSimulateHotKey Lib "imm32.dll" (ByVal hwnd As Integer, ByVal dw As Integer) As Integer
-
-
Private Sub Form_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
-
For Each objCtl As Control In Me.Controls
-
AddHandler objCtl.GotFocus, AddressOf ControlIME
-
Next
-
End Sub
-
-
Private Sub Form_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
-
ControlIME(Me, Nothing)
-
End Sub
-
-
Private Shared Sub ControlIME(ByVal sender As Object, ByVal e As System.EventArgs)
-
Dim lngStatus As Long, lngSt As Long, h As IntPtr = sender.Handle
-
ImmGetConversionStatus(ImmGetContext(h), lngStatus, lngSt)
-
If lngStatus = 9 Then ImmSimulateHotKey(h, 113)
-
End Sub
-
-
End Class
之後再每一個 Form 中繼承這一個類別
Visual Basic:
-
Inherits ImeForm
之後再將 Form 中的IME 模式開啟 ON
大家試試看吧!
我之後是將 XP 內建的新注音換成自然輸入,這問題才解決,不過這不是解決事情的辦法啊!
這篇文章沒有標籤..本篇文章引用網址:
|
其他隨機文章: |



