Index: Include/Classes/System/Windows/Forms/Control.ab
===================================================================
--- Include/Classes/System/Windows/Forms/Control.ab	(revision 223)
+++ Include/Classes/System/Windows/Forms/Control.ab	(revision 240)
@@ -28,5 +28,5 @@
 	End Sub
 
-	Override Function AsyncState() As IObject
+	Override Function AsyncState() As Object
 		Return Nothing
 	End Function
@@ -36,10 +36,10 @@
 	End Function
 
-	Override Function CompletedSynchronously() As BOOL
+	Override Function CompletedSynchronously() As Boolean
 		Return FALSE
 	End Function
 
-	Override Function IsCompleted() As BOOL
-		Return waitHandle.WaitOne(0, FALSE)
+	Override Function IsCompleted() As Boolean
+		Return waitHandle.WaitOne(0, False)
 	End Function
 
@@ -69,5 +69,4 @@
 	'---------------------------------------------------------------------------
 	' Public Properties
-
 	Function AllowDrop() As Boolean
 	End Function
@@ -93,5 +92,5 @@
 	End Function
 
-	Sub Text(ByRef t As String)
+	Sub Text(t As String)
 		text = t
 		Dim e As EventArgs
@@ -185,9 +184,11 @@
 
 	Const Function Right() As Long
-		Return Left + Width
+		Dim b = Bounds
+		Return b.Left + b.Width
 	End Function
 
 	Const Function Bottom() As Long
-		Return Top + Height
+		Dim b = Bounds
+		Return b.Top + b.Height
 	End Function
 
@@ -266,6 +267,4 @@
 		This.text = text
 		bkColor = DefaultBackColor
-'		Debug
-		CreateHandle()
 	End Sub
 
@@ -279,6 +278,8 @@
 
 	Virtual Sub ~Control()
-		If wnd.IsWindow Then
-			wnd.Destroy() ' 暫定
+		If Not Object.ReferenceEquals(wnd, Nothing) Then
+			If wnd.IsWindow Then
+				wnd.Destroy() ' 暫定
+			End If
 		End If
 	End Sub
@@ -358,5 +359,10 @@
 	End Sub
 
+	Sub CreateControl()
+		CreateHandle() '暫定
+	End Sub
+
 Protected
+
 	'---------------------------------------------------------------------------
 	' Protected Properties
@@ -365,5 +371,4 @@
 		Return createParams
 	End Function
-
 '	Virtual Function DefaultCursor() As Cursor
 
@@ -377,5 +382,5 @@
 
 '	Const Virtual Function Cursor() As Cursor
-'	Virtual Sub Cursor(ByRef c As Cursor)
+'	Virtual Sub Cursor(c As Cursor)
 
 	'---------------------------------------------------------------------------
@@ -385,10 +390,17 @@
 		Dim gch = GCHandle.Alloc(This)
 		TlsSetValue(tlsIndex, GCHandle.ToIntPtr(gch) As VoidPtr)
-		With createParams[0]
+		With createParams
 			Dim hwndParent = 0 As HWND
 			If Not Object.ReferenceEquals(parent, Nothing) Then
 				hwndParent = parent.Handle
 			End If
-			If CreateWindowEx(.ExStyle, atom As ULONG_PTR As PCSTR, text, .Style, _
+			Dim pText As PCTSTR
+			If String.IsNullOrEmpty(text) Then
+				pText = "" As PCTSTR
+			Else
+				pText = ToTCStr(text)
+			End If
+
+			If CreateWindowEx(.ExStyle, atom As ULONG_PTR As PCSTR, pText, .Style, _
 				CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, _
 				hwndParent, 0, hInstance, 0) = 0 Then
@@ -437,4 +449,6 @@
 				Case WM_CREATE
 					OnHandleCreated(EventArgs.Empty)
+				Case WM_DESTROY
+					OnHandleDestroyed(EventArgs.Empty)
 				Case Else
 					DefWndProc(m)
@@ -487,4 +501,5 @@
 	Virtual Sub OnBackColorChanged(e As EventArgs) : End Sub
 	Virtual Sub OnHandleCreated(e As EventArgs) : End Sub
+	Virtual Sub OnHandleDestroyed(e As EventArgs) : End Sub
 	Virtual Sub OnTextChanged(e As EventArgs)
 		wnd.SetText(ToTCStr(text))
@@ -527,5 +542,5 @@
 			.hbrBackground = 0
 			.lpszMenuName = 0
-			.lpszClassName = WindowClassName
+			.lpszClassName = ToTCStr(WindowClassName)
 			.hIconSm = 0
 		End With
@@ -565,12 +580,11 @@
 				' あってはならない事態
 				Debug
-				ExitThread(0)
+				ExitThread(-1)
 			End If
-'			Debug
 			rThis.wnd = New WindowHandle(hwnd)
 			SetWindowLongPtr(hwnd, GWLP_THIS, gchValue)
 		End If
-		Dim m As Message
-		m = Message.Create(hwnd, msg, wp, lp)
+
+		Dim m = Message.Create(hwnd, msg, wp, lp)
 		rThis.WndProc(m)
 		Return m.Result
@@ -605,2 +619,3 @@
 
 #endif '__SYSTEM_WINDOWS_FORMS_CONTROL_AB__
+
