none
webbrowser 的中文輸入 RRS feed

  • 一般討論

  •     Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
            '中文 (繁體) - 美式鍵盤
            Dim myInputLanguage As String = "中文 (繁體) - 美式鍵盤"
            For Each lang As InputLanguage In InputLanguage.InstalledInputLanguages
                If lang.LayoutName.ToString.Equals(myInputLanguage) Then
                    InputLanguage.CurrentInputLanguage = lang
                    TextBox1.Focus()
                    Exit For
                End If
            Next lang
        End Sub

        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            '中文 (繁體) - 注音
            Dim myInputLanguage As String = "中文 (繁體) - 注音"
            For Each lang As InputLanguage In InputLanguage.InstalledInputLanguages
                If lang.LayoutName.ToString.Equals(myInputLanguage) Then
                    InputLanguage.CurrentInputLanguage = lang
                    TextBox1.Focus()
                    Exit For
                End If
            Next lang
        End Sub

        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            '中文 (繁體) - 新注音
            Dim myInputLanguage As String = "中文 (繁體) - 新注音"
            For Each lang As InputLanguage In InputLanguage.InstalledInputLanguages
                If lang.LayoutName.ToString.Equals(myInputLanguage) Then
                    InputLanguage.CurrentInputLanguage = lang
                    TextBox1.Focus()
                    Exit For
                End If
            Next lang
        End Sub

        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            '中文 (繁體) - 新倉頡
            Dim myInputLanguage As String = "中文 (繁體) - 新倉頡"
            For Each lang As InputLanguage In InputLanguage.InstalledInputLanguages
                If lang.LayoutName.ToString.Equals(myInputLanguage) Then
                    InputLanguage.CurrentInputLanguage = lang
                    TextBox1.Focus()
                    Exit For
                End If
            Next lang
        End Sub

    以上的程式在執行上沒問題。

    可是如果將 textbox 改成 webbrowser,

    則有輸入法亂跳的問題,

    例如:

    1. 語言工具列顯示是中文輸入、中文模式,可是輸出卻是英文。

    2. 有時會自動轉成全形。

    3. 已經切換成中文輸入,語言工具列顯示是中文輸入、英文模式。

    4. form 的 Imemode 屬性視窗唯獨不能直接設定 onHalf 屬性,其他屬性卻可以,例如 KatakanaHalf 屬性。如果使用程式碼設定 onHalf 屬性,系統則會接受。

    去google查一查,這個bug在 .net 2.0 以前已經存在,並且出了一個修正程式 KB925488

    net 3.0 以後這個bug已經修正,不過好像只修正在 textbox 上,其他的控制項還是無解。

    有高手可以解決這個問題嗎?

    謝謝

    我的程式環境:WinXP professional sp3、 VS 2008、.net 3.5。



    2011年5月29日 上午 05:03