掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
テキストボックスに漢字を入力するには? (ID:78265)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
============================ > 1. 一回Tabキーを押さないと…… UserControlのソース中の Private Sub UserControl_GotFocus() というイベントを、 Private Sub UserControl_EnterFocus() に変更してください。 ============================ > 2. Fキーで抜けると表示が消えたりしてしまう…… 質問の[Enterで抜ける][Fキーで抜ける]という意味がわかりません。 ただ、表示が消えるというからには、おそらく F5キーを押しているのでは ないでしょうか? F5は、ブラウザの[再読込/更新]を行う事になるので、 WebBrowserの内容が初期状態(表示が空の状態)に戻ってしまいます。 この場合、キーの入力をキャンセルさせるための処理が必要になります。 Private Sub onkeydown_OnEvent(ByVal e As Object) RaiseEvent KeyDown(e) If e.keyCode = vbKeyF5 Then e.keyCode = 0 '「イベントを起こしたキーは無い」という状態にする e.returnValue = False 'このイベント(onkeydown)の処理をキャンセルする End If End Sub 実際には、F5以外にもキャンセルさせた方が良い組み合わせが幾つかありますので、 必要に応じて、それらのキー入力もキャンセルさせるようにしてみて下さい。 例えば、キャンセルさせるべきキーとしては、このような物があります。 F5: 更新 → 初期状態に戻ってしまう。 Ctrl+F5: 強制更新 → 初期状態に戻ってしまう。 F6、またはCtrl+Tab: 次フレーム移動 → フォーカスを失ってしまう。 F11: 全画面表示 → WebBrowserの動作が一瞬止まるので、連続入力できなくなる。 Ctrl+N: 新規ウィンドウ → InternetExplorerが起動してしまう。 Ctrl+P: 印刷 → 印刷ダイアログが表示されてしまう。 ============================ > 3.IMEモードを漢字に設定するには…… CSSで変更できます。プログラム的に変更するには、 styleプロパティもしくは runtimeStyleプロパティを使います。 UserControlのソース中の、「Private Sub Initialize()」内を 以下のように修正してみて下さい。 With TextControl.runtimeStyle .imeMode = "active" '☆☆☆この行を追加☆☆☆ .Width = "100%" .Height = "100%" End With なお、imeModeプロパティで指定できる文字列は、以下の4種です。 "auto" 既定値です。IMEの制御を行いません。 "acitve" IMEをOnにします。 "inactive" IMEをOffにします。 "disabled" IMEを使用不可にします。 http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/imemode.asp この設定部を、UserControlに「IMEModeプロパティ」として実装させると、 良いかもしれませんね。 ============================ バグ修正 1つ目。 UserControl中の onchange_OnEvent イベントにて、 mstrText = TextControl.Text という記述がありますが、これは、 mstrText = TextControl.Value の間違いです。 2つ目。 UserControlに、以下のコードを追加してください。 無くても動作しますが、一応保険として。 Private Sub UserControl_Initialize() Set WB = WebBrowser1.Object End Sub 3つめ。 UserControl_ReadPropertiesイベントプロシージャの最後と、 UserControl_WritePropertiesイベントプロシージャの最後に、 それぞれ、次の行を追加してください。これらが無いと、 BackColorプロパティの設定が保存されません。 UserControl_ReadPropertiesプロシージャに追加: TextControl.runtimeStyle.backgroundColor = PropBag.ReadProperty("BackColor", "") UserControl_WritePropertiesプロシージャに追加: PropBag.WriteProperty "BackColor", TextControl.runtimeStyle.backgroundColor ============================
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.