■No38600 (やんまー さん) に返信
>>どうフォームにイベント発生を通知すればいいかわからなくなってゆきづまってしまいました・・・
> そのExTextBoxコントロールに自分で新しいイベントを定義すると良いでしょう。
> フォームからはその新しいイベントを利用することで、メッセージの受信を知ることができます。
> 参考: http://msdn.microsoft.com/ja-jp/library/ms973905.aspx
例 KeyDownイベント発生ではないが、独自のイベントを発生させる。
Public Class ExTextBox
Inherits System.Windows.Forms.TextBox
Public Event onImeEndComposition()
Protected Overrides Sub WndProc(ByRef m As Message)
Const WM_IME_COMPOSITION As Integer = &H10D
Const WM_IME_ENDCOMPOSITION As Integer = &H10E
Select Case m.Msg
Case WM_IME_COMPOSITION
Case WM_IME_ENDCOMPOSITION
'イベント発生させて、Form側で処理する。
RaiseEvent onImeEndComposition()
End Select
MyBase.WndProc(m)
End Sub
End Class
'ここからForm側
Friend WithEvents exText As ExTextBox
Private Sub ExText_ImeEndComposition() Handles exText.onImeEndComposition
MsgBox("IME_ENDCOMPOSITION")
End Sub
|