- PR -

IMEが使用できなくなる。

1
投稿者投稿内容
もぐ
会議室デビュー日: 2002/09/22
投稿数: 12
投稿日時: 2005-10-04 01:30
環境
WinXP
VS2003
VB.NETでWinアプリを作ってます。

メインのFormとサブFormがありメインのForm上にTextBoxを置いてIMEMODEをONにしています。

実行した処理:
メインを非表示にしてサブFormを表示します。
次にサブFormを閉じてメインFormを表示します。
そうするとメインのForm上にあるTextBoxでIMEが使用できなくなります。

メインのFormを表示した時にIMEが使えるようにしたいです。

回避方法を知っている方宜しくお願いします。


甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-10-04 06:22
現象を再現できるコードを教えてください。

どのようなイベントでFormの表示/非表示を行っているのですか?普通に考えた場合、ボタンとかメニューのClickイベントで処理を行いますよね?簡単なサンプルを作って実行した限りでは、再現させる事が出来ませんでした。処理を記述しているイベント等が深く関与しているのではないかと思います。

以降は感なんですけど、「次にサブFormを閉じてメインFormを表示します」時、実は本当のフォーカスは他の所にあったりしませんかね?
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
もぐ
会議室デビュー日: 2002/09/22
投稿数: 12
投稿日時: 2005-10-04 10:25
再現する簡単なコードです。

Form1にTextboxとButtonを配置
Form2にButtonとAxWebBrowserを配置します。

form1のコード

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim frm As New Form2

Me.Visible = False

frm.ShowDialog(Me)

Me.Visible = True

frm.Dispose()

End Sub

Form2のコード

Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.AxWebBrowser1.Navigate("http://www.msn.co.jp/home.armx")

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
もぐ
会議室デビュー日: 2002/09/22
投稿数: 12
投稿日時: 2005-10-04 23:51
自己解決しました。

Form1を非表示にしてForm2でAxWebBrowserのNavigateするとIMEが使用できない。
Form1を表示したままForm2でAxWebBrowserのNavigateするとIMEは使用できました。
Form1を非表示にすると良くないようなので、最小化することにしました。

1

スキルアップ/キャリアアップ(JOB@IT)