Validatingイベントによるフォーカス移動キャンセル後、ふりがな入力が動作しなくなる
対象製品
InputMan for .NET 4.0J Windows Forms Edition
発生環境
動作環境と同じ
状況
修正済み
詳細
この問題はImeコンポーネントで発生します。Validatingイベントのハンドラでe.Cancel = Trueと設定してフォーカス移動が抑制されると、このコントロールに設定されているImeコンポーネントのふりがな取得機能が動作しなくなります。
回避方法
この問題を修正した修正版(v4.0.2008.0415)をご利用ください。こちらからダウンロードできます。
またはImeコンポーネントを設定するコントロールについて、Enterイベントでコンポーネントを新規作成し、必要な設定を行います。また、LeaveイベントでこのImeコンポーネントを設定解除し、破棄します。
[VB]
Private ime As Ime
Private Sub Edit2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Edit2.Enter
'【回避策[1/2]】
ime = New Ime()
ime.SetReadingStringOutput(Edit2, New ReadingStringOutput(Edit1, ReadingStringOutputMode.Append))
End Sub
Private Sub Edit2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Edit2.Leave
'【回避策[2/2]】
ime.Dispose()
ime = Nothing
End Sub
[C#]
private Ime m_Ime;
private void edit2_Enter( object sender, EventArgs e )
{
//【回避策[1/2]】
m_Ime = new Ime();
m_Ime.SetReadingStringOutput(
edit2,
new ReadingStringOutput( edit1, ReadingStringOutputMode.Append )
);
}
private void edit2_Leave( object sender, EventArgs e )
{
//【回避策[2/2]】
m_Ime.Dispose();
m_Ime = null;
}
またはImeコンポーネントを設定するコントロールについて、Enterイベントでコンポーネントを新規作成し、必要な設定を行います。また、LeaveイベントでこのImeコンポーネントを設定解除し、破棄します。
[VB]
Private ime As Ime
Private Sub Edit2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Edit2.Enter
'【回避策[1/2]】
ime = New Ime()
ime.SetReadingStringOutput(Edit2, New ReadingStringOutput(Edit1, ReadingStringOutputMode.Append))
End Sub
Private Sub Edit2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Edit2.Leave
'【回避策[2/2]】
ime.Dispose()
ime = Nothing
End Sub
[C#]
private Ime m_Ime;
private void edit2_Enter( object sender, EventArgs e )
{
//【回避策[1/2]】
m_Ime = new Ime();
m_Ime.SetReadingStringOutput(
edit2,
new ReadingStringOutput( edit1, ReadingStringOutputMode.Append )
);
}
private void edit2_Leave( object sender, EventArgs e )
{
//【回避策[2/2]】
m_Ime.Dispose();
m_Ime = null;
}
キーワード
INMN06686
この文書は、以前は次のバグレポートIDで公開されていました : 7401