標題:
如何在TextBox1中顯示輸入法
[打印本頁]
作者:
sillykin
時間:
2013-8-31 00:50
標題:
如何在TextBox1中顯示輸入法
如何在TextBox1中顯示輸入法『倉頡』
如何在TextBox2中顯示輸入法『注音』
每次都要重新切換...vba可否做的到呢 ????
作者:
sillykin
時間:
2013-9-1 01:49
回復
1#
sillykin
如圖
作者:
GBKEE
時間:
2013-9-1 12:59
回復
2#
sillykin
請參閱vba的說明
IMEMode 屬性 這個屬性只適用於遠東(Far East)所寫的應用程式,其它應用程則忽略。
複製代碼
vba語法無法切換中文的輸入法
作者:
luhpro
時間:
2013-9-4 23:08
本帖最後由 luhpro 於 2013-9-4 23:11 編輯
回復
1#
sillykin
網路上找到的方法, 利用 SendKeys -
使用前必須先設定好輸入法的快速切換鍵 :
倉頡 Ctrl + Shift + 1
注音 Ctrl + Shift + 3 如右圖 : [attach]15940[/attach]
因為 TextBox 沒有類似 GotFocus 或是 Activate 之類的事件來實作剛進入時切換輸入法的動作,
這裡我透過各TextBox 的 MouseUp 事件來切換輸入法,
不過, 此法只能用於滑鼠點擊的方式來做切換 TextBox 的動作,
若是使用者使用 Tab 鍵來切換的話就只能切換是否為中文輸入狀態囉.
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'SendKeys ("^+0") ' 可不用加此行, 因為我最初是設定切換英數的快速鍵為 Ctrl + Shift + 0 , 而這個已可由 TextBox1.IMEMode = fmIMEModeOff 來實現了.
End Sub
Private Sub TextBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
SendKeys ("^+1")
End Sub
Private Sub TextBox3_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
SendKeys ("^+3")
End Sub
Private Sub UserForm_Initialize()
TextBox1.IMEMode = fmIMEModeOff ' 英數
TextBox2.IMEMode = fmIMEModeOn ' 倉頡
TextBox3.IMEMode = fmIMEModeOn ' 注音
End Sub
複製代碼
[attach]15941[/attach]
作者:
GBKEE
時間:
2013-9-5 08:22
回復
5#
luhpro
建議改用Enter事件(進入TextBox之前事件),不必動到滑鼠.(Tab鍵可移動在TextBox之間)
Private Sub TextBox1_Enter()
SendKeys "^ + {BS}"
End Sub
Private Sub ATextBox2_Enter()
SendKeys ("^+1")
End Sub
Private Sub ATextBox3_Enter()
SendKeys ("^+3")
End Sub
複製代碼
作者:
sillykin
時間:
2013-9-8 00:12
感謝luhpro 及g大版主的回覆..讓小弟大高眼界..
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)