Index: trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/Forms/ControlEvent.sbp
===================================================================
--- trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/Forms/ControlEvent.sbp	(revision 506)
+++ trunk/ab5.0/ablib/src/Classes/ActiveBasic/Windows/UI/Forms/ControlEvent.sbp	(revision 542)
@@ -1,15 +1,11 @@
-Public
-	/*!
-	@brief PaintDCイベントハンドラを追加する
-	*/
+
+Public
 	Sub AddPaintDC(h As PaintDCEventHandler)
 		If IsNothing(paintDC) Then
-			paintDC = New PaintDCEventHandler
-		End If
-		paintDC += h
-	End Sub
-	/*!
-	@brief PaintDCイベントハンドラを削除する
-	*/
+			paintDC = h
+		Else
+			paintDC += h
+		End If
+	End Sub
 	Sub RemovePaintDC(h As PaintDCEventHandler)
 		If Not IsNothing(paintDC) Then
@@ -17,9 +13,6 @@
 		End If
 	End Sub
-Protected
-	/*!
-	@brief ウィンドウの描画が必要なときに呼び出されます。
-	*/
-	Virtual Sub OnPaintDC(e As PaintDCEventArgs)
+Private
+	Sub OnPaintDC(e As PaintDCEventArgs)
 		If Not IsNothing(paintDC) Then
 			paintDC(This, e)
@@ -30,26 +23,18 @@
 
 Public
-	/*!
-	@brief Clickイベントハンドラを追加する
-	*/
-	Sub AddClick(h As EventHandler)
+	Sub AddClick(h As System.EventHandler)
 		If IsNothing(click) Then
-			click = New EventHandler
-		End If
-		click += h
-	End Sub
-	/*!
-	@brief Clickイベントハンドラを削除する
-	*/
-	Sub RemoveClick(h As EventHandler)
+			click = h
+		Else
+			click += h
+		End If
+	End Sub
+	Sub RemoveClick(h As System.EventHandler)
 		If Not IsNothing(click) Then
 			click -= h
 		End If
 	End Sub
-Protected
-	/*!
-	@brief クリックされたときに呼び出されます。
-	*/
-	Virtual Sub OnClick(e As EventArgs)
+Private
+	Sub OnClick(e As System.EventArgs)
 		If Not IsNothing(click) Then
 			click(This, e)
@@ -57,29 +42,21 @@
 	End Sub
 Private
-	click As EventHandler
-
-Public
-	/*!
-	@brief DoubleClickイベントハンドラを追加する
-	*/
-	Sub AddDoubleClick(h As EventHandler)
+	click As System.EventHandler
+
+Public
+	Sub AddDoubleClick(h As System.EventHandler)
 		If IsNothing(doubleClick) Then
-			doubleClick = New EventHandler
-		End If
-		doubleClick += h
-	End Sub
-	/*!
-	@brief DoubleClickイベントハンドラを削除する
-	*/
-	Sub RemoveDoubleClick(h As EventHandler)
+			doubleClick = h
+		Else
+			doubleClick += h
+		End If
+	End Sub
+	Sub RemoveDoubleClick(h As System.EventHandler)
 		If Not IsNothing(doubleClick) Then
 			doubleClick -= h
 		End If
 	End Sub
-Protected
-	/*!
-	@brief ダブルクリックされたときに呼び出されます。
-	*/
-	Virtual Sub OnDoubleClick(e As EventArgs)
+Private
+	Sub OnDoubleClick(e As System.EventArgs)
 		If Not IsNothing(doubleClick) Then
 			doubleClick(This, e)
@@ -87,19 +64,102 @@
 	End Sub
 Private
-	doubleClick As EventHandler
-
-Public
-	/*!
-	@brief MouseDownイベントハンドラを追加する
-	*/
+	doubleClick As System.EventHandler
+
+Public
+	Sub AddMouseEnter(h As MouseEventHandler)
+		If IsNothing(mouseEnter) Then
+			mouseEnter = h
+		Else
+			mouseEnter += h
+		End If
+	End Sub
+	Sub RemoveMouseEnter(h As MouseEventHandler)
+		If Not IsNothing(mouseEnter) Then
+			mouseEnter -= h
+		End If
+	End Sub
+Private
+	Sub OnMouseEnter(e As MouseEventArgs)
+		If Not IsNothing(mouseEnter) Then
+			mouseEnter(This, e)
+		End If
+	End Sub
+Private
+	mouseEnter As MouseEventHandler
+
+Public
+	Sub AddMouseMove(h As MouseEventHandler)
+		If IsNothing(mouseMove) Then
+			mouseMove = h
+		Else
+			mouseMove += h
+		End If
+	End Sub
+	Sub RemoveMouseMove(h As MouseEventHandler)
+		If Not IsNothing(mouseMove) Then
+			mouseMove -= h
+		End If
+	End Sub
+Private
+	Sub OnMouseMove(e As MouseEventArgs)
+		If Not IsNothing(mouseMove) Then
+			mouseMove(This, e)
+		End If
+	End Sub
+Private
+	mouseMove As MouseEventHandler
+
+Public
+	Sub AddMouseHover(h As MouseEventHandler)
+		If IsNothing(mouseHover) Then
+			mouseHover = h
+		Else
+			mouseHover += h
+		End If
+	End Sub
+	Sub RemoveMouseHover(h As MouseEventHandler)
+		If Not IsNothing(mouseHover) Then
+			mouseHover -= h
+		End If
+	End Sub
+Private
+	Sub OnMouseHover(e As MouseEventArgs)
+		If Not IsNothing(mouseHover) Then
+			mouseHover(This, e)
+		End If
+	End Sub
+Private
+	mouseHover As MouseEventHandler
+
+Public
+	Sub AddMouseLeave(h As MouseEventHandler)
+		If IsNothing(mouseLeave) Then
+			mouseLeave = h
+		Else
+			mouseLeave += h
+		End If
+	End Sub
+	Sub RemoveMouseLeave(h As MouseEventHandler)
+		If Not IsNothing(mouseLeave) Then
+			mouseLeave -= h
+		End If
+	End Sub
+Private
+	Sub OnMouseLeave(e As MouseEventArgs)
+		If Not IsNothing(mouseLeave) Then
+			mouseLeave(This, e)
+		End If
+	End Sub
+Private
+	mouseLeave As MouseEventHandler
+
+Public
 	Sub AddMouseDown(h As MouseEventHandler)
 		If IsNothing(mouseDown) Then
-			mouseDown = New MouseEventHandler
-		End If
-		mouseDown += h
-	End Sub
-	/*!
-	@brief MouseDownイベントハンドラを削除する
-	*/
+			mouseDown = h
+		Else
+			mouseDown += h
+		End If
+	End Sub
 	Sub RemoveMouseDown(h As MouseEventHandler)
 		If Not IsNothing(mouseDown) Then
@@ -107,9 +167,6 @@
 		End If
 	End Sub
-Protected
-	/*!
-	@brief マウスボタンが押されたときに呼び出されます。
-	*/
-	Virtual Sub OnMouseDown(e As MouseEventArgs)
+Private
+	Sub OnMouseDown(e As MouseEventArgs)
 		If Not IsNothing(mouseDown) Then
 			mouseDown(This, e)
@@ -120,16 +177,55 @@
 
 Public
-	/*!
-	@brief MouseUpイベントハンドラを追加する
-	*/
+	Sub AddMouseClick(h As MouseEventHandler)
+		If IsNothing(mouseClick) Then
+			mouseClick = h
+		Else
+			mouseClick += h
+		End If
+	End Sub
+	Sub RemoveMouseClick(h As MouseEventHandler)
+		If Not IsNothing(mouseClick) Then
+			mouseClick -= h
+		End If
+	End Sub
+Private
+	Sub OnMouseClick(e As MouseEventArgs)
+		If Not IsNothing(mouseClick) Then
+			mouseClick(This, e)
+		End If
+	End Sub
+Private
+	mouseClick As MouseEventHandler
+
+Public
+	Sub AddMouseDoubleClick(h As MouseEventHandler)
+		If IsNothing(mouseDoubleClick) Then
+			mouseDoubleClick = h
+		Else
+			mouseDoubleClick += h
+		End If
+	End Sub
+	Sub RemoveMouseDoubleClick(h As MouseEventHandler)
+		If Not IsNothing(mouseDoubleClick) Then
+			mouseDoubleClick -= h
+		End If
+	End Sub
+Private
+	Sub OnMouseDoubleClick(e As MouseEventArgs)
+		If Not IsNothing(mouseDoubleClick) Then
+			mouseDoubleClick(This, e)
+		End If
+	End Sub
+Private
+	mouseDoubleClick As MouseEventHandler
+
+Public
 	Sub AddMouseUp(h As MouseEventHandler)
 		If IsNothing(mouseUp) Then
-			mouseUp = New MouseEventHandler
-		End If
-		mouseUp += h
-	End Sub
-	/*!
-	@brief MouseUpイベントハンドラを削除する
-	*/
+			mouseUp = h
+		Else
+			mouseUp += h
+		End If
+	End Sub
 	Sub RemoveMouseUp(h As MouseEventHandler)
 		If Not IsNothing(mouseUp) Then
@@ -137,9 +233,6 @@
 		End If
 	End Sub
-Protected
-	/*!
-	@brief マウスボタンが離されたときに呼び出されます。
-	*/
-	Virtual Sub OnMouseUp(e As MouseEventArgs)
+Private
+	Sub OnMouseUp(e As MouseEventArgs)
 		If Not IsNothing(mouseUp) Then
 			mouseUp(This, e)
@@ -149,2 +242,90 @@
 	mouseUp As MouseEventHandler
 
+Public
+	Sub AddKeyDown(h As KeyEventHandler)
+		If IsNothing(keyDown) Then
+			keyDown = h
+		Else
+			keyDown += h
+		End If
+	End Sub
+	Sub RemoveKeyDown(h As KeyEventHandler)
+		If Not IsNothing(keyDown) Then
+			keyDown -= h
+		End If
+	End Sub
+Private
+	Sub OnKeyDown(e As KeyEventArgs)
+		If Not IsNothing(keyDown) Then
+			keyDown(This, e)
+		End If
+	End Sub
+Private
+	keyDown As KeyEventHandler
+
+Public
+	Sub AddKeyUp(h As KeyEventHandler)
+		If IsNothing(keyUp) Then
+			keyUp = h
+		Else
+			keyUp += h
+		End If
+	End Sub
+	Sub RemoveKeyUp(h As KeyEventHandler)
+		If Not IsNothing(keyUp) Then
+			keyUp -= h
+		End If
+	End Sub
+Private
+	Sub OnKeyUp(e As KeyEventArgs)
+		If Not IsNothing(keyUp) Then
+			keyUp(This, e)
+		End If
+	End Sub
+Private
+	keyUp As KeyEventHandler
+/*
+Public
+	Sub AddKeyPress(h As KeyPressEventHandler)
+		If IsNothing(keyPress) Then
+			keyPress = h
+		Else
+			keyPress += h
+		End If
+	End Sub
+	Sub RemoveKeyPress(h As KeyPressEventHandler)
+		If Not IsNothing(keyPress) Then
+			keyPress -= h
+		End If
+	End Sub
+Private
+	Sub OnKeyPress(e As KeyPressEventArgs)
+		If Not IsNothing(keyPress) Then
+			keyPress(This, e)
+		End If
+	End Sub
+Private
+	keyPress As KeyPressEventHandler
+
+Public
+	Sub AddCreate(h As CreateEventHandler)
+		If IsNothing(create) Then
+			create = h
+		Else
+			create += h
+		End If
+	End Sub
+	Sub RemoveCreate(h As CreateEventHandler)
+		If Not IsNothing(create) Then
+			create -= h
+		End If
+	End Sub
+Private
+	Sub OnCreate(e As CreateEventArgs)
+		If Not IsNothing(create) Then
+			create(This, e)
+		End If
+	End Sub
+Private
+	create As CreateEventHandler
+*/
