Browse Source

* Common.cs : Add common things here.
* LabelTest.cs : Remove common declarations to Common.cs
* ScrollBarTest.cs : Remove common declarations to Common.cs
Add more propery range / exception tests
Add more event order tests
Fix Mouse tests.
Add event arg tests.



svn path=/trunk/mcs/; revision=50980

Hisham Mardam Bey 20 years ago
parent
commit
7cda7a37da

+ 4 - 0
mcs/class/Managed.Windows.Forms/ChangeLog

@@ -1,3 +1,7 @@
+2005-09-28 Hisham Mardam Bey <[email protected]>
+
+        * System.Windows.Forms_test.dll.sources : Added Common.cs
+
 2005-09-27  Kornél Pál  <[email protected]>
 
 	* Makefile: Replaced /codepage with CODEPAGE.

+ 1 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms_test.dll.sources

@@ -4,6 +4,7 @@ System.Windows.Forms/CheckBoxTest.cs
 System.Windows.Forms/CheckedListBoxEventTest.cs
 System.Windows.Forms/CheckedListBoxTest.cs
 System.Windows.Forms/ComboBoxTest.cs
+System.Windows.Forms/Common.cs
 System.Windows.Forms/ControlEventTest.cs
 System.Windows.Forms/ControlTest.cs
 System.Windows.Forms/DataGridTableStyleTest.cs

+ 11 - 1
mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog

@@ -1,6 +1,16 @@
+2005-09-28 Hisham Mardam Bey <[email protected]>
+
+        * Common.cs : Add common things here.
+	* LabelTest.cs : Remove common declarations to Common.cs
+	* ScrollBarTest.cs : Remove common declarations to Common.cs
+	                     Add more propery range / exception tests
+			     Add more event order tests
+			     Fix Mouse tests.
+			     Add event arg tests.
+
 2005-09-27 Hisham Mardam Bey <[email protected]>
 
-	* LabelTestl.cs : Added more event tests (external handlers)
+	* LabelTest.cs : Added more event tests (external handlers)
 	                  Added event arg checks
 			  Fixed OnPaint tests.
 			  Seperated invalidation tests.

+ 251 - 0
mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/Common.cs

@@ -0,0 +1,251 @@
+using System;
+using NUnit.Framework;
+using System.Windows.Forms;
+using System.Drawing;
+using System.Collections;
+
+namespace MonoTests.System.Windows.Forms
+{
+      internal enum WndMsg {
+	   WM_NULL                   = 0x0000,
+	     WM_CREATE                 = 0x0001,
+	     WM_DESTROY                = 0x0002,
+	     WM_MOVE                   = 0x0003,
+	     WM_SIZE                   = 0x0005,
+	     WM_ACTIVATE               = 0x0006,
+	     WM_SETFOCUS               = 0x0007,
+	     WM_KILLFOCUS              = 0x0008,
+	     //public const uint WM_SETVISIBLE           = 0x0009;
+	     WM_ENABLE                 = 0x000A,
+	     WM_SETREDRAW              = 0x000B,
+	     WM_SETTEXT                = 0x000C,
+	     WM_GETTEXT                = 0x000D,
+	     WM_GETTEXTLENGTH          = 0x000E,
+	     WM_PAINT                  = 0x000F,
+	     WM_CLOSE                  = 0x0010,
+	     WM_QUERYENDSESSION        = 0x0011,
+	     WM_QUIT                   = 0x0012,
+	     WM_QUERYOPEN              = 0x0013,
+	     WM_ERASEBKGND             = 0x0014,
+	     WM_SYSCOLORCHANGE         = 0x0015,
+	     WM_ENDSESSION             = 0x0016,
+	     //public const uint WM_SYSTEMERROR          = 0x0017;
+	     WM_SHOWWINDOW             = 0x0018,
+	     WM_CTLCOLOR               = 0x0019,
+	     WM_WININICHANGE           = 0x001A,
+	     WM_SETTINGCHANGE          = 0x001A,
+	     WM_DEVMODECHANGE          = 0x001B,
+	     WM_ACTIVATEAPP            = 0x001C,
+	     WM_FONTCHANGE             = 0x001D,
+	     WM_TIMECHANGE             = 0x001E,
+	     WM_CANCELMODE             = 0x001F,
+	     WM_SETCURSOR              = 0x0020,
+	     WM_MOUSEACTIVATE          = 0x0021,
+	     WM_CHILDACTIVATE          = 0x0022,
+	     WM_QUEUESYNC              = 0x0023,
+	     WM_GETMINMAXINFO          = 0x0024,
+	     WM_PAINTICON              = 0x0026,
+	     WM_ICONERASEBKGND         = 0x0027,
+	     WM_NEXTDLGCTL             = 0x0028,
+	     //public const uint WM_ALTTABACTIVE         = 0x0029;
+	     WM_SPOOLERSTATUS          = 0x002A,
+	     WM_DRAWITEM               = 0x002B,
+	     WM_MEASUREITEM            = 0x002C,
+	     WM_DELETEITEM             = 0x002D,
+	     WM_VKEYTOITEM             = 0x002E,
+	     WM_CHARTOITEM             = 0x002F,
+	     WM_SETFONT                = 0x0030,
+	     WM_GETFONT                = 0x0031,
+	     WM_SETHOTKEY              = 0x0032,
+	     WM_GETHOTKEY              = 0x0033,
+	     //public const uint WM_FILESYSCHANGE        = 0x0034;
+	     //public const uint WM_ISACTIVEICON         = 0x0035;
+	     //public const uint WM_QUERYPARKICON        = 0x0036;
+	     WM_QUERYDRAGICON          = 0x0037,
+	     WM_COMPAREITEM            = 0x0039,
+	     //public const uint WM_TESTING              = 0x003a;
+	     //public const uint WM_OTHERWINDOWCREATED = 0x003c;
+	     WM_GETOBJECT              = 0x003D,
+	     //public const uint WM_ACTIVATESHELLWINDOW        = 0x003e;
+	     WM_COMPACTING             = 0x0041,
+	     WM_COMMNOTIFY             = 0x0044 ,
+	     WM_WINDOWPOSCHANGING      = 0x0046,
+	     WM_WINDOWPOSCHANGED       = 0x0047,
+	     WM_POWER                  = 0x0048,
+	     WM_COPYDATA               = 0x004A,
+	     WM_CANCELJOURNAL          = 0x004B,
+	     WM_NOTIFY                 = 0x004E,
+	     WM_INPUTLANGCHANGEREQUEST = 0x0050,
+	     WM_INPUTLANGCHANGE        = 0x0051,
+	     WM_TCARD                  = 0x0052,
+	     WM_HELP                   = 0x0053,
+	     WM_USERCHANGED            = 0x0054,
+	     WM_NOTIFYFORMAT           = 0x0055,
+	     WM_CONTEXTMENU            = 0x007B,
+	     WM_STYLECHANGING          = 0x007C,
+	     WM_STYLECHANGED           = 0x007D,
+	     WM_DISPLAYCHANGE          = 0x007E,
+	     WM_GETICON                = 0x007F,
+
+	     // Non-Client messages
+	     WM_SETICON                = 0x0080,
+	     WM_NCCREATE               = 0x0081,
+	     WM_NCDESTROY              = 0x0082,
+	     WM_NCCALCSIZE             = 0x0083,
+	     WM_NCHITTEST              = 0x0084,
+	     WM_NCPAINT                = 0x0085,
+	     WM_NCACTIVATE             = 0x0086,
+	     WM_GETDLGCODE             = 0x0087,
+	     WM_SYNCPAINT              = 0x0088,
+	     //public const uint WM_SYNCTASK       = 0x0089;
+	     WM_NCMOUSEMOVE            = 0x00A0,
+	     WM_NCLBUTTONDOWN          = 0x00A1,
+	     WM_NCLBUTTONUP            = 0x00A2,
+	     WM_NCLBUTTONDBLCLK        = 0x00A3,
+	     WM_NCRBUTTONDOWN          = 0x00A4,
+	     WM_NCRBUTTONUP            = 0x00A5,
+	     WM_NCRBUTTONDBLCLK        = 0x00A6,
+	     WM_NCMBUTTONDOWN          = 0x00A7,
+	     WM_NCMBUTTONUP            = 0x00A8,
+	     WM_NCMBUTTONDBLCLK        = 0x00A9,
+	     //public const uint WM_NCXBUTTONDOWN    = 0x00ab;
+	     //public const uint WM_NCXBUTTONUP      = 0x00ac;
+	     //public const uint WM_NCXBUTTONDBLCLK  = 0x00ad;
+	     WM_KEYDOWN                = 0x0100,
+	     WM_KEYFIRST               = 0x0100,
+	     WM_KEYUP                  = 0x0101,
+	     WM_CHAR                   = 0x0102,
+	     WM_DEADCHAR               = 0x0103,
+	     WM_SYSKEYDOWN             = 0x0104,
+	     WM_SYSKEYUP               = 0x0105,
+	     WM_SYSCHAR                = 0x0106,
+	     WM_SYSDEADCHAR            = 0x0107,
+	     WM_KEYLAST                = 0x0108,
+	     WM_IME_STARTCOMPOSITION   = 0x010D,
+	     WM_IME_ENDCOMPOSITION     = 0x010E,
+	     WM_IME_COMPOSITION        = 0x010F,
+	     WM_IME_KEYLAST            = 0x010F,
+	     WM_INITDIALOG             = 0x0110,
+	     WM_COMMAND                = 0x0111,
+	     WM_SYSCOMMAND             = 0x0112,
+	     WM_TIMER                  = 0x0113,
+	     WM_HSCROLL                = 0x0114,
+	     WM_VSCROLL                = 0x0115,
+	     WM_INITMENU               = 0x0116,
+	     WM_INITMENUPOPUP          = 0x0117,
+	     //public const uint WM_SYSTIMER       = 0x0118;
+	     WM_MENUSELECT             = 0x011F,
+	     WM_MENUCHAR               = 0x0120,
+	     WM_ENTERIDLE              = 0x0121,
+	     WM_MENURBUTTONUP          = 0x0122,
+	     WM_MENUDRAG               = 0x0123,
+	     WM_MENUGETOBJECT          = 0x0124,
+	     WM_UNINITMENUPOPUP        = 0x0125,
+	     WM_MENUCOMMAND            = 0x0126,
+	     //public const uint WM_CHANGEUISTATE    = 0x0127;
+	     //public const uint WM_UPDATEUISTATE    = 0x0128;
+	     //public const uint WM_QUERYUISTATE     = 0x0129;
+	     //
+	     //public const uint WM_LBTRACKPOINT     = 0x0131;
+	     WM_CTLCOLORMSGBOX         = 0x0132,
+	     WM_CTLCOLOREDIT           = 0x0133,
+	     WM_CTLCOLORLISTBOX        = 0x0134,
+	     WM_CTLCOLORBTN            = 0x0135,
+	     WM_CTLCOLORDLG            = 0x0136,
+	     WM_CTLCOLORSCROLLBAR      = 0x0137,
+	     WM_CTLCOLORSTATIC         = 0x0138,
+	     WM_MOUSEMOVE              = 0x0200,
+	     WM_MOUSEFIRST                     = 0x0200,
+	     WM_LBUTTONDOWN            = 0x0201,
+	     WM_LBUTTONUP              = 0x0202,
+	     WM_LBUTTONDBLCLK          = 0x0203,
+	     WM_RBUTTONDOWN            = 0x0204,
+	     WM_RBUTTONUP              = 0x0205,
+	     WM_RBUTTONDBLCLK          = 0x0206,
+	     WM_MBUTTONDOWN            = 0x0207,
+	     WM_MBUTTONUP              = 0x0208,
+	     WM_MBUTTONDBLCLK          = 0x0209,
+	     WM_MOUSEWHEEL             = 0x020A,
+	     WM_MOUSELAST             = 0x020D,
+	     //public const uint WM_XBUTTONDOWN      = 0x020B;
+	     //public const uint WM_XBUTTONUP        = 0x020C;
+	     //public const uint WM_XBUTTONDBLCLK    = 0x020D;
+	     WM_PARENTNOTIFY           = 0x0210,
+	     WM_ENTERMENULOOP          = 0x0211,
+	     WM_EXITMENULOOP           = 0x0212,
+	     WM_NEXTMENU               = 0x0213,
+	     WM_SIZING                 = 0x0214,
+	     WM_CAPTURECHANGED         = 0x0215,
+	     WM_MOVING                 = 0x0216,
+	     //public const uint WM_POWERBROADCAST   = 0x0218;
+	     WM_DEVICECHANGE           = 0x0219,
+	     WM_MDICREATE              = 0x0220,
+	     WM_MDIDESTROY             = 0x0221,
+	     WM_MDIACTIVATE            = 0x0222,
+	     WM_MDIRESTORE             = 0x0223,
+	     WM_MDINEXT                = 0x0224,
+	     WM_MDIMAXIMIZE            = 0x0225,
+	     WM_MDITILE                = 0x0226,
+	     WM_MDICASCADE             = 0x0227,
+	     WM_MDIICONARRANGE         = 0x0228,
+	     WM_MDIGETACTIVE           = 0x0229,
+	/* D&D messages */
+	     //public const uint WM_DROPOBJECT     = 0x022A;
+	     //public const uint WM_QUERYDROPOBJECT  = 0x022B;
+	     //public const uint WM_BEGINDRAG      = 0x022C;
+	     //public const uint WM_DRAGLOOP       = 0x022D;
+	     //public const uint WM_DRAGSELECT     = 0x022E;
+	     //public const uint WM_DRAGMOVE       = 0x022F;
+	     WM_MDISETMENU             = 0x0230,
+	     WM_ENTERSIZEMOVE          = 0x0231,
+	     WM_EXITSIZEMOVE           = 0x0232,
+	     WM_DROPFILES              = 0x0233,
+	     WM_MDIREFRESHMENU         = 0x0234,
+	     WM_IME_SETCONTEXT         = 0x0281,
+	     WM_IME_NOTIFY             = 0x0282,
+	     WM_IME_CONTROL            = 0x0283,
+	     WM_IME_COMPOSITIONFULL    = 0x0284,
+	     WM_IME_SELECT             = 0x0285,
+	     WM_IME_CHAR               = 0x0286,
+	     WM_IME_REQUEST            = 0x0288,
+	     WM_IME_KEYDOWN            = 0x0290,
+	     WM_IME_KEYUP              = 0x0291,
+	     WM_MOUSEHOVER             = 0x02A1,
+	     WM_MOUSELEAVE             = 0x02A3,
+	     WM_CUT                    = 0x0300,
+	     WM_COPY                   = 0x0301,
+	     WM_PASTE                  = 0x0302,
+	     WM_CLEAR                  = 0x0303,
+	     WM_UNDO                   = 0x0304,
+	     WM_RENDERFORMAT           = 0x0305,
+	     WM_RENDERALLFORMATS       = 0x0306,
+	     WM_DESTROYCLIPBOARD       = 0x0307,
+	     WM_DRAWCLIPBOARD          = 0x0308,
+	     WM_PAINTCLIPBOARD         = 0x0309,
+	     WM_VSCROLLCLIPBOARD       = 0x030A,
+	     WM_SIZECLIPBOARD          = 0x030B,
+	     WM_ASKCBFORMATNAME        = 0x030C,
+	     WM_CHANGECBCHAIN          = 0x030D,
+	     WM_HSCROLLCLIPBOARD       = 0x030E,
+	     WM_QUERYNEWPALETTE        = 0x030F,
+	     WM_PALETTEISCHANGING      = 0x0310,
+	     WM_PALETTECHANGED         = 0x0311,
+	     WM_HOTKEY                 = 0x0312,
+	     WM_PRINT                  = 0x0317,
+	     WM_PRINTCLIENT            = 0x0318,
+	     WM_HANDHELDFIRST          = 0x0358,
+	     WM_HANDHELDLAST           = 0x035F,
+	     WM_AFXFIRST               = 0x0360,
+	     WM_AFXLAST                = 0x037F,
+	     WM_PENWINFIRST            = 0x0380,
+	     WM_PENWINLAST             = 0x038F,
+	     WM_APP                    = 0x8000,
+	     WM_USER                   = 0x0400,
+
+	     // Our "private" ones
+	     WM_MOUSE_ENTER            = 0x0401,
+	     WM_MOUSE_LEAVE            = 0x0402,
+	     WM_ASYNC_MESSAGE          = 0x0403,
+	     WM_REFLECT                = WM_USER + 0x1c00
+   }
+}

+ 0 - 243
mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/LabelTest.cs

@@ -14,249 +14,6 @@ using System.Collections;
 
 namespace MonoTests.System.Windows.Forms
 {
-   internal enum WndMsg {
-	   WM_NULL                   = 0x0000,
-	     WM_CREATE                 = 0x0001,
-	     WM_DESTROY                = 0x0002,
-	     WM_MOVE                   = 0x0003,
-	     WM_SIZE                   = 0x0005,
-	     WM_ACTIVATE               = 0x0006,
-	     WM_SETFOCUS               = 0x0007,
-	     WM_KILLFOCUS              = 0x0008,
-	     //public const uint WM_SETVISIBLE           = 0x0009;
-	     WM_ENABLE                 = 0x000A,
-	     WM_SETREDRAW              = 0x000B,
-	     WM_SETTEXT                = 0x000C,
-	     WM_GETTEXT                = 0x000D,
-	     WM_GETTEXTLENGTH          = 0x000E,
-	     WM_PAINT                  = 0x000F,
-	     WM_CLOSE                  = 0x0010,
-	     WM_QUERYENDSESSION        = 0x0011,
-	     WM_QUIT                   = 0x0012,
-	     WM_QUERYOPEN              = 0x0013,
-	     WM_ERASEBKGND             = 0x0014,
-	     WM_SYSCOLORCHANGE         = 0x0015,
-	     WM_ENDSESSION             = 0x0016,
-	     //public const uint WM_SYSTEMERROR          = 0x0017;
-	     WM_SHOWWINDOW             = 0x0018,
-	     WM_CTLCOLOR               = 0x0019,
-	     WM_WININICHANGE           = 0x001A,
-	     WM_SETTINGCHANGE          = 0x001A,
-	     WM_DEVMODECHANGE          = 0x001B,
-	     WM_ACTIVATEAPP            = 0x001C,
-	     WM_FONTCHANGE             = 0x001D,
-	     WM_TIMECHANGE             = 0x001E,
-	     WM_CANCELMODE             = 0x001F,
-	     WM_SETCURSOR              = 0x0020,
-	     WM_MOUSEACTIVATE          = 0x0021,
-	     WM_CHILDACTIVATE          = 0x0022,
-	     WM_QUEUESYNC              = 0x0023,
-	     WM_GETMINMAXINFO          = 0x0024,
-	     WM_PAINTICON              = 0x0026,
-	     WM_ICONERASEBKGND         = 0x0027,
-	     WM_NEXTDLGCTL             = 0x0028,
-	     //public const uint WM_ALTTABACTIVE         = 0x0029;
-	     WM_SPOOLERSTATUS          = 0x002A,
-	     WM_DRAWITEM               = 0x002B,
-	     WM_MEASUREITEM            = 0x002C,
-	     WM_DELETEITEM             = 0x002D,
-	     WM_VKEYTOITEM             = 0x002E,
-	     WM_CHARTOITEM             = 0x002F,
-	     WM_SETFONT                = 0x0030,
-	     WM_GETFONT                = 0x0031,
-	     WM_SETHOTKEY              = 0x0032,
-	     WM_GETHOTKEY              = 0x0033,
-	     //public const uint WM_FILESYSCHANGE        = 0x0034;
-	     //public const uint WM_ISACTIVEICON         = 0x0035;
-	     //public const uint WM_QUERYPARKICON        = 0x0036;
-	     WM_QUERYDRAGICON          = 0x0037,
-	     WM_COMPAREITEM            = 0x0039,
-	     //public const uint WM_TESTING              = 0x003a;
-	     //public const uint WM_OTHERWINDOWCREATED = 0x003c;
-	     WM_GETOBJECT              = 0x003D,
-	     //public const uint WM_ACTIVATESHELLWINDOW        = 0x003e;
-	     WM_COMPACTING             = 0x0041,
-	     WM_COMMNOTIFY             = 0x0044 ,
-	     WM_WINDOWPOSCHANGING      = 0x0046,
-	     WM_WINDOWPOSCHANGED       = 0x0047,
-	     WM_POWER                  = 0x0048,
-	     WM_COPYDATA               = 0x004A,
-	     WM_CANCELJOURNAL          = 0x004B,
-	     WM_NOTIFY                 = 0x004E,
-	     WM_INPUTLANGCHANGEREQUEST = 0x0050,
-	     WM_INPUTLANGCHANGE        = 0x0051,
-	     WM_TCARD                  = 0x0052,
-	     WM_HELP                   = 0x0053,
-	     WM_USERCHANGED            = 0x0054,
-	     WM_NOTIFYFORMAT           = 0x0055,
-	     WM_CONTEXTMENU            = 0x007B,
-	     WM_STYLECHANGING          = 0x007C,
-	     WM_STYLECHANGED           = 0x007D,
-	     WM_DISPLAYCHANGE          = 0x007E,
-	     WM_GETICON                = 0x007F,
-
-	     // Non-Client messages
-	     WM_SETICON                = 0x0080,
-	     WM_NCCREATE               = 0x0081,
-	     WM_NCDESTROY              = 0x0082,
-	     WM_NCCALCSIZE             = 0x0083,
-	     WM_NCHITTEST              = 0x0084,
-	     WM_NCPAINT                = 0x0085,
-	     WM_NCACTIVATE             = 0x0086,
-	     WM_GETDLGCODE             = 0x0087,
-	     WM_SYNCPAINT              = 0x0088,
-	     //public const uint WM_SYNCTASK       = 0x0089;
-	     WM_NCMOUSEMOVE            = 0x00A0,
-	     WM_NCLBUTTONDOWN          = 0x00A1,
-	     WM_NCLBUTTONUP            = 0x00A2,
-	     WM_NCLBUTTONDBLCLK        = 0x00A3,
-	     WM_NCRBUTTONDOWN          = 0x00A4,
-	     WM_NCRBUTTONUP            = 0x00A5,
-	     WM_NCRBUTTONDBLCLK        = 0x00A6,
-	     WM_NCMBUTTONDOWN          = 0x00A7,
-	     WM_NCMBUTTONUP            = 0x00A8,
-	     WM_NCMBUTTONDBLCLK        = 0x00A9,
-	     //public const uint WM_NCXBUTTONDOWN    = 0x00ab;
-	     //public const uint WM_NCXBUTTONUP      = 0x00ac;
-	     //public const uint WM_NCXBUTTONDBLCLK  = 0x00ad;
-	     WM_KEYDOWN                = 0x0100,
-	     WM_KEYFIRST               = 0x0100,
-	     WM_KEYUP                  = 0x0101,
-	     WM_CHAR                   = 0x0102,
-	     WM_DEADCHAR               = 0x0103,
-	     WM_SYSKEYDOWN             = 0x0104,
-	     WM_SYSKEYUP               = 0x0105,
-	     WM_SYSCHAR                = 0x0106,
-	     WM_SYSDEADCHAR            = 0x0107,
-	     WM_KEYLAST                = 0x0108,
-	     WM_IME_STARTCOMPOSITION   = 0x010D,
-	     WM_IME_ENDCOMPOSITION     = 0x010E,
-	     WM_IME_COMPOSITION        = 0x010F,
-	     WM_IME_KEYLAST            = 0x010F,
-	     WM_INITDIALOG             = 0x0110,
-	     WM_COMMAND                = 0x0111,
-	     WM_SYSCOMMAND             = 0x0112,
-	     WM_TIMER                  = 0x0113,
-	     WM_HSCROLL                = 0x0114,
-	     WM_VSCROLL                = 0x0115,
-	     WM_INITMENU               = 0x0116,
-	     WM_INITMENUPOPUP          = 0x0117,
-	     //public const uint WM_SYSTIMER       = 0x0118;
-	     WM_MENUSELECT             = 0x011F,
-	     WM_MENUCHAR               = 0x0120,
-	     WM_ENTERIDLE              = 0x0121,
-	     WM_MENURBUTTONUP          = 0x0122,
-	     WM_MENUDRAG               = 0x0123,
-	     WM_MENUGETOBJECT          = 0x0124,
-	     WM_UNINITMENUPOPUP        = 0x0125,
-	     WM_MENUCOMMAND            = 0x0126,
-	     //public const uint WM_CHANGEUISTATE    = 0x0127;
-	     //public const uint WM_UPDATEUISTATE    = 0x0128;
-	     //public const uint WM_QUERYUISTATE     = 0x0129;
-	     //
-	     //public const uint WM_LBTRACKPOINT     = 0x0131;
-	     WM_CTLCOLORMSGBOX         = 0x0132,
-	     WM_CTLCOLOREDIT           = 0x0133,
-	     WM_CTLCOLORLISTBOX        = 0x0134,
-	     WM_CTLCOLORBTN            = 0x0135,
-	     WM_CTLCOLORDLG            = 0x0136,
-	     WM_CTLCOLORSCROLLBAR      = 0x0137,
-	     WM_CTLCOLORSTATIC         = 0x0138,
-	     WM_MOUSEMOVE              = 0x0200,
-	     WM_MOUSEFIRST                     = 0x0200,
-	     WM_LBUTTONDOWN            = 0x0201,
-	     WM_LBUTTONUP              = 0x0202,
-	     WM_LBUTTONDBLCLK          = 0x0203,
-	     WM_RBUTTONDOWN            = 0x0204,
-	     WM_RBUTTONUP              = 0x0205,
-	     WM_RBUTTONDBLCLK          = 0x0206,
-	     WM_MBUTTONDOWN            = 0x0207,
-	     WM_MBUTTONUP              = 0x0208,
-	     WM_MBUTTONDBLCLK          = 0x0209,
-	     WM_MOUSEWHEEL             = 0x020A,
-	     WM_MOUSELAST             = 0x020D,
-	     //public const uint WM_XBUTTONDOWN      = 0x020B;
-	     //public const uint WM_XBUTTONUP        = 0x020C;
-	     //public const uint WM_XBUTTONDBLCLK    = 0x020D;
-	     WM_PARENTNOTIFY           = 0x0210,
-	     WM_ENTERMENULOOP          = 0x0211,
-	     WM_EXITMENULOOP           = 0x0212,
-	     WM_NEXTMENU               = 0x0213,
-	     WM_SIZING                 = 0x0214,
-	     WM_CAPTURECHANGED         = 0x0215,
-	     WM_MOVING                 = 0x0216,
-	     //public const uint WM_POWERBROADCAST   = 0x0218;
-	     WM_DEVICECHANGE           = 0x0219,
-	     WM_MDICREATE              = 0x0220,
-	     WM_MDIDESTROY             = 0x0221,
-	     WM_MDIACTIVATE            = 0x0222,
-	     WM_MDIRESTORE             = 0x0223,
-	     WM_MDINEXT                = 0x0224,
-	     WM_MDIMAXIMIZE            = 0x0225,
-	     WM_MDITILE                = 0x0226,
-	     WM_MDICASCADE             = 0x0227,
-	     WM_MDIICONARRANGE         = 0x0228,
-	     WM_MDIGETACTIVE           = 0x0229,
-	/* D&D messages */
-	     //public const uint WM_DROPOBJECT     = 0x022A;
-	     //public const uint WM_QUERYDROPOBJECT  = 0x022B;
-	     //public const uint WM_BEGINDRAG      = 0x022C;
-	     //public const uint WM_DRAGLOOP       = 0x022D;
-	     //public const uint WM_DRAGSELECT     = 0x022E;
-	     //public const uint WM_DRAGMOVE       = 0x022F;
-	     WM_MDISETMENU             = 0x0230,
-	     WM_ENTERSIZEMOVE          = 0x0231,
-	     WM_EXITSIZEMOVE           = 0x0232,
-	     WM_DROPFILES              = 0x0233,
-	     WM_MDIREFRESHMENU         = 0x0234,
-	     WM_IME_SETCONTEXT         = 0x0281,
-	     WM_IME_NOTIFY             = 0x0282,
-	     WM_IME_CONTROL            = 0x0283,
-	     WM_IME_COMPOSITIONFULL    = 0x0284,
-	     WM_IME_SELECT             = 0x0285,
-	     WM_IME_CHAR               = 0x0286,
-	     WM_IME_REQUEST            = 0x0288,
-	     WM_IME_KEYDOWN            = 0x0290,
-	     WM_IME_KEYUP              = 0x0291,
-	     WM_MOUSEHOVER             = 0x02A1,
-	     WM_MOUSELEAVE             = 0x02A3,
-	     WM_CUT                    = 0x0300,
-	     WM_COPY                   = 0x0301,
-	     WM_PASTE                  = 0x0302,
-	     WM_CLEAR                  = 0x0303,
-	     WM_UNDO                   = 0x0304,
-	     WM_RENDERFORMAT           = 0x0305,
-	     WM_RENDERALLFORMATS       = 0x0306,
-	     WM_DESTROYCLIPBOARD       = 0x0307,
-	     WM_DRAWCLIPBOARD          = 0x0308,
-	     WM_PAINTCLIPBOARD         = 0x0309,
-	     WM_VSCROLLCLIPBOARD       = 0x030A,
-	     WM_SIZECLIPBOARD          = 0x030B,
-	     WM_ASKCBFORMATNAME        = 0x030C,
-	     WM_CHANGECBCHAIN          = 0x030D,
-	     WM_HSCROLLCLIPBOARD       = 0x030E,
-	     WM_QUERYNEWPALETTE        = 0x030F,
-	     WM_PALETTEISCHANGING      = 0x0310,
-	     WM_PALETTECHANGED         = 0x0311,
-	     WM_HOTKEY                 = 0x0312,
-	     WM_PRINT                  = 0x0317,
-	     WM_PRINTCLIENT            = 0x0318,
-	     WM_HANDHELDFIRST          = 0x0358,
-	     WM_HANDHELDLAST           = 0x035F,
-	     WM_AFXFIRST               = 0x0360,
-	     WM_AFXLAST                = 0x037F,
-	     WM_PENWINFIRST            = 0x0380,
-	     WM_PENWINLAST             = 0x038F,
-	     WM_APP                    = 0x8000,
-	     WM_USER                   = 0x0400,
-
-	     // Our "private" ones
-	     WM_MOUSE_ENTER            = 0x0401,
-	     WM_MOUSE_LEAVE            = 0x0402,
-	     WM_ASYNC_MESSAGE          = 0x0403,
-	     WM_REFLECT                = WM_USER + 0x1c00
-   }
-
    [TestFixture]
 
    public class LabelTest2

+ 1435 - 841
mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ScrollBarTest.cs

@@ -2,11 +2,10 @@
 // Copyright (c) 2005 Novell, Inc.
 //
 // Authors:
-//      Hisham Mardam Bey ([email protected]) 
+//      Hisham Mardam Bey ([email protected])
 //      Ritvik Mayank ([email protected])
 //
 //
-                                                
 
 using System;
 using NUnit.Framework;
@@ -16,844 +15,1439 @@ using System.Collections;
 
 namespace MonoTests.System.Windows.Forms
 {
+
 public class MyScrollBar : HScrollBar
-        {
-		private ArrayList results = new ArrayList ();
-	        public MyScrollBar () : base ()
-		{
-			// TODO: add event handlers (+=)
-		}
-		
-		protected override void OnBackColorChanged (EventArgs e)
-		{
-			results.Add ("OnBackColorChanged");
-			base.OnBackColorChanged (e);
-		}
-		
-		protected override void OnBackgroundImageChanged (EventArgs e)
-		{
-			results.Add ("OnBackgroundImageChanged");
-			base.OnBackgroundImageChanged (e);
-		}
-		
-		protected override void OnClick (EventArgs e)
-		{
-			results.Add ("OnClick");
-			base.OnClick (e);
-		}
-		
-		protected override void OnDoubleClick (EventArgs e)
-		{
-			results.Add ("OnDoubleClick");
-			base.OnDoubleClick (e);
-		}
-		
-		protected override void OnFontChanged (EventArgs e)
-		{
-			results.Add ("OnFontChanged");
-			base.OnFontChanged (e);
-		}
-		
-		protected override void OnForeColorChanged (EventArgs e)
-		{
-			results.Add ("OnForeColorChanged");
-			base.OnForeColorChanged (e);
-		}
-		
-		protected override void OnImeModeChanged (EventArgs e)
-		{
-			results.Add ("OnImeModeChanged");
-			base.OnImeModeChanged (e);
-		}
-		
-		protected override void OnMouseDown (MouseEventArgs e)
-		{
-			results.Add ("OnMouseDown");
-			base.OnMouseDown (e);
-		}
-		
-		protected override void OnMouseMove (MouseEventArgs e)
-		{
-			results.Add ("OnMouseMove");
-			base.OnMouseMove (e);
-		}
-	   
-	        protected override void OnMouseEnter (EventArgs e)
-	        {
-		   results.Add ("OnMouseEnter");
-		   base.OnMouseEnter (e);
-		}
-			
-	        protected override void OnMouseLeave (EventArgs e)
-	        {
-		   results.Add ("OnMouseLeave");
-		   base.OnMouseLeave (e);
-		}
-			
-	        protected override void OnMouseHover (EventArgs e)
-	        {
-		   results.Add ("OnMouseHover");
-		   base.OnMouseHover (e);
-		}			   
-		
-		protected override void OnMouseUp (MouseEventArgs e)
-		{
-			results.Add ("OnMouseUp");
-			base.OnMouseUp (e);
-		}
-		
-		protected override void OnHandleCreated (EventArgs e)
-		{
-			results.Add ("OnHandleCreated");
-			base.OnHandleCreated (e);
-		}
-		
-		protected override void OnBindingContextChanged (EventArgs e)
-		{
-			results.Add ("OnBindingContextChanged");
-			base.OnBindingContextChanged (e);
-		}
-		
-		protected override void OnInvalidated (InvalidateEventArgs e)
-		{
-			results.Add("OnInvalidated");
-			base.OnInvalidated (e);
-		}
-		
-		protected override void OnResize (EventArgs e)
-		{
-			results.Add("OnResize");
-			base.OnResize (e);
-		}
-		
-		protected override void OnSizeChanged (EventArgs e)
-		{
-			results.Add("OnSizeChanged");
-			base.OnSizeChanged (e);
-		}
-		
-		protected override void OnLayout (LayoutEventArgs e)
-		{
-			results.Add("OnLayout");
-			base.OnLayout (e);
-		}
-		
-		protected override void OnVisibleChanged (EventArgs e)
-		{
-			results.Add("OnVisibleChanged");
-			base.OnVisibleChanged (e);
-		}
-		
-		protected override void OnScroll (ScrollEventArgs e)
-		{
-			results.Add("OnScroll");
-			base.OnScroll (e);
-		}
-		
-		protected override void OnTextChanged (EventArgs e)
-		{
-			results.Add("OnTextChanged");
-			base.OnTextChanged (e);
-		}
-		
-		protected override void OnValueChanged (EventArgs e)
-		{
-			results.Add("OnValueChanged");
-			base.OnValueChanged (e);
-		}
-		
-		protected override void OnPaint (PaintEventArgs e)
-		{
-			results.Add("OnPaint");
-			base.OnPaint (e);
-		}
-		
-		public ArrayList Results {
-			get {	return results; }
-		}
-	   
-	        public void MoveMouse ()
-	        {
-		   Message m;
-		   
-		   m = new Message ();
-		   
-		   m.Msg = (int)WndMsg.WM_NCHITTEST;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x0;
-		   m.LParam = (IntPtr)0x1c604ea;
-		   this.WndProc(ref m);
-		   
-		   m.Msg = (int)WndMsg.WM_SETCURSOR;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x100448;
-		   m.LParam = (IntPtr)0x2000001;
-		   this.WndProc(ref m);
-		   
-		   m.Msg = (int)WndMsg.WM_MOUSEFIRST;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x0;
-		   m.LParam = (IntPtr)0x14000b;
-		   this.WndProc(ref m);
-		   
-		   m.Msg = (int)WndMsg.WM_MOUSEHOVER;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x0;
-		   m.LParam = (IntPtr)0x14000b;
-		   this.WndProc(ref m);
-		}		
-	   
-	        public void MouseRightDown() 
-	        {
-		   Message m;
-		   
-		   m = new Message();
-		   
-		   m.Msg = (int)WndMsg.WM_RBUTTONDOWN;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x01;
-		   m.LParam = (IntPtr)0x9004f;
-		   this.WndProc(ref m);
-		}
-	   
-	        public void MouseRightUp() 
-	        {
-		   Message m;
-		   
-		   m = new Message();
-		   
-		   m.Msg = (int)WndMsg.WM_RBUTTONUP;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x01;
-		   m.LParam = (IntPtr)0x9004f;
-		   this.WndProc(ref m);
-		}
-	   
-	        public void ScrollNow ()
-	        {
-		   Message m;
-		   
-		   m = new Message ();
-		   
-		   m.Msg = 8468;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x1;
-		   m.LParam = (IntPtr)0x1a051a;
-		   this.WndProc(ref m);
-		   
-		   m.Msg = 233;
-		   m.HWnd = this.Handle;
-		   m.WParam = (IntPtr)0x1;
-		   m.LParam = (IntPtr)0x12eb34;
-		   this.WndProc(ref m);
-		}
-	}
-   
-        [TestFixture]	
-        public class ScrollbarTest
-        {		
-		[Test]
-		public void PubPropTest ()
-		{
-			MyScrollBar myscrlbar = new MyScrollBar ();
-			
-			// B
-			myscrlbar.BackColor = Color.Red;
-			Assert.AreEqual (255, myscrlbar.BackColor.R, "B2");
-			myscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
-			Assert.AreEqual (16, myscrlbar.BackgroundImage.Height, "B3");
-			
-			// F
-			Assert.AreEqual ("ff000000", myscrlbar.ForeColor.Name, "F1");
-			
-			// I
-			//Assert.AreEqual (ImeMode.Disable, myscrlbar.ImeMode, "I1");
-			
-			// L
-                        Assert.AreEqual (10, myscrlbar.LargeChange, "L1");
-			
-			// M
-			Assert.AreEqual (100, myscrlbar.Maximum, "M1");
-			Assert.AreEqual (0, myscrlbar.Minimum, "M2");
-			myscrlbar.Maximum = 300;
-			myscrlbar.Minimum = 100;
-			Assert.AreEqual (300, myscrlbar.Maximum, "M3");
-			Assert.AreEqual (100, myscrlbar.Minimum, "M4");
-			
-			// S
-			Assert.AreEqual (null, myscrlbar.Site, "S1");
-			Assert.AreEqual (1, myscrlbar.SmallChange, "S2");
-			myscrlbar.SmallChange = 10;
-			Assert.AreEqual (10, myscrlbar.SmallChange, "S3");
-			
-			// T
-			Assert.AreEqual (false, myscrlbar.TabStop, "T1");
-			myscrlbar.TabStop = true;
-			Assert.AreEqual (true, myscrlbar.TabStop, "T2");
-			Assert.AreEqual ("", myscrlbar.Text, "T3");
-			myscrlbar.Text = "MONO SCROLLBAR";
-			Assert.AreEqual ("MONO SCROLLBAR", myscrlbar.Text, "T4");
-			
-			// V
-                        Assert.AreEqual (100, myscrlbar.Value, "V1");
-			myscrlbar.Value = 150;			
-			Assert.AreEqual (150, myscrlbar.Value, "V2");
-		}
-		
-		[Test]
-		[ExpectedException (typeof (ArgumentException))]
-		public void ExceptionValueTest ()
-		{
-			MyScrollBar myscrlbar = new MyScrollBar ();
-			myscrlbar.Minimum = 10;
-			myscrlbar.Maximum = 20;			
-			myscrlbar.Value = 9;
-			myscrlbar.Value = 21;
-		}
-		
-		[Test]
-		public void PubMethodTest ()
-		{
-			MyScrollBar myscrlbar = new MyScrollBar ();
-			myscrlbar.Text = "New HScrollBar";
-			Assert.AreEqual ("System.Windows.Forms.HScrollBar, Minimum: 0, Maximum: 100, Value: 0",
-					 myscrlbar.ToString (), "T5");
-		}				
-	}
-
-        [TestFixture]	
-        public class ScrollBarEventTest
-        {
-		static bool eventhandled = false;
-		public void ScrollBar_EventHandler (object sender,EventArgs e)
-		{
-			eventhandled = true;
-		}
-				
-		[Test]
-	        public void BackColorChangedTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			ScrollBar myHscrlbar = new HScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.BackColorChanged += new EventHandler (ScrollBar_EventHandler);
-			myHscrlbar.BackColor = Color.Red;
-			Assert.AreEqual (true, eventhandled, "B4");
-			eventhandled = false;			
-		}
-		
-		[Test]
-	        public void BackgroundImageChangedTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			ScrollBar myHscrlbar = new HScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.BackgroundImageChanged += new EventHandler (ScrollBar_EventHandler);
-			myHscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
-			Assert.AreEqual (true, eventhandled, "B5");
-			eventhandled = false;
-		}
-		
-		[Test, Ignore ("Incomplete.")]
-	        public void ClickTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			ScrollBar myHscrlbar = new HScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.Click += new EventHandler (ScrollBar_EventHandler);
-
-			Assert.AreEqual (true, eventhandled, "C1");
-		}
-		
-		[Test, Ignore ("Incomplete.")]
-	        public void DoubleClickTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			ScrollBar myHscrlbar = new HScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.DoubleClick += new EventHandler (ScrollBar_EventHandler);
-
-			Assert.AreEqual (true, eventhandled, "D1");
-		}		
-		
-		[Test]
-	        public void FontChangedTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			ScrollBar myHscrlbar = new HScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.FontChanged += new EventHandler (ScrollBar_EventHandler);
-			FontDialog myFontDialog = new FontDialog();
-			myHscrlbar.Font = myFontDialog.Font;
-			Assert.AreEqual (true, eventhandled, "F2");
-			eventhandled = false;
-		}
-
-		[Test]
-	        public void ForeColorChangedTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			ScrollBar myHscrlbar = new HScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.ForeColorChanged += new EventHandler (ScrollBar_EventHandler);
-			myHscrlbar.ForeColor = Color.Azure;
-			Assert.AreEqual (true, eventhandled, "F3");
-			eventhandled = false;
-		}
-				
-		[Test]
-	        public void ImeModehangedTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			ScrollBar myHscrlbar = new HScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.ImeModeChanged += new EventHandler (ScrollBar_EventHandler);
-			myHscrlbar.ImeMode = ImeMode.Katakana;
-			Assert.AreEqual (true, eventhandled, "I2");
-			eventhandled = false;
-		}
-		
-		[Test]
-	        public void MouseDownTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			MyScrollBar myHscrlbar = new MyScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.MouseDown += new MouseEventHandler (ScrollBar_EventHandler);
-		        myHscrlbar.MouseRightDown ();
-		   
-			Assert.AreEqual (true, eventhandled, "M5");
-			eventhandled = false;
-		}
-		
-		[Test]
-	        public void MouseMoveTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			MyScrollBar myHscrlbar = new MyScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.MouseMove += new MouseEventHandler (ScrollBar_EventHandler);
-		        myHscrlbar.MoveMouse ();
-		   
-			Assert.AreEqual (true, eventhandled, "M6");
-			eventhandled = false;
-		}
-		
-		[Test]
-	        public void MouseUpTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			MyScrollBar myHscrlbar = new MyScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.MouseUp += new MouseEventHandler (ScrollBar_EventHandler);
-		        myHscrlbar.MouseRightUp ();
-		   
-			Assert.AreEqual (true, eventhandled, "M7");
-			eventhandled = false;
-		}
-		
-		[Test, Ignore ("Incomplete.")]
-	        public void PaintTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			MyScrollBar myHscrlbar = new MyScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.Paint += new PaintEventHandler (ScrollBar_EventHandler);
-
-			Assert.AreEqual (true, eventhandled, "P1");
-			eventhandled = false;
-		}
-		
-		[Test]
-	        public void ScrollTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			MyScrollBar myHscrlbar = new MyScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.Scroll += new ScrollEventHandler (ScrollBar_EventHandler);
-		        myHscrlbar.ScrollNow ();
-		   
-			Assert.AreEqual (true, eventhandled, "S4");
-			eventhandled = false;
-		}	
-		
-		[Test, Ignore ("Is this raised? Check on MS.")]
-	        public void TextChangedTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			MyScrollBar myHscrlbar = new MyScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.TextChanged += new EventHandler (ScrollBar_EventHandler);
-
-			Assert.AreEqual (true, eventhandled, "T6");
-			eventhandled = false;
-		}		
-		 
-		[Test]
-	        public void ValueChangeTest ()
-	        {
-			Form myform = new Form ();
-			myform.Visible = true;			
-			MyScrollBar myHscrlbar = new MyScrollBar ();
-			myform.Controls.Add (myHscrlbar);
-			myHscrlbar.Value = 40 ;
-			myHscrlbar.ValueChanged += new EventHandler (ScrollBar_EventHandler);
-			myHscrlbar.Value = 50 ;
-			Assert.AreEqual (true, eventhandled, "V3");
-			eventhandled = false;			
-		}		 		
-	}   
-   
-        public class MyHScrollBar : HScrollBar
-        {
-	        public MyHScrollBar () : base ()
-		{			
-		}
-		
-		public Size MyDefaultSize {
-			get { return DefaultSize; }
-		}
-		
-		public CreateParams MyCreateParams {
-			get { return CreateParams; }
-		}
-	}
-   
-        [TestFixture]	
-        public class MyHScrollBarTest
-        {
-		[Test]
-		public void ProtectedTest ()
-		{
-			MyHScrollBar msbar = new MyHScrollBar ();
-			
-			Assert.AreEqual (80, msbar.MyDefaultSize.Width, "D1");
-			Assert.AreEqual (16, msbar.MyDefaultSize.Height, "D2");
-		}		
-	}
-   
-        public class MyVScrollBar : VScrollBar
-        {
-	        public MyVScrollBar () : base ()
-		{			
-		}
-		
-		public Size MyDefaultSize {
-			get { return DefaultSize; }
-		}
-		
-		public CreateParams MyCreateParams {
-			get { return CreateParams; }
-		}
-	}
-   
-        [TestFixture]	
-        public class MyVScrollBarTest
-        {
-		[Test]
-		public void PubMethodTest ()
-		{
-			MyVScrollBar msbar = new MyVScrollBar ();
-			
-			Assert.AreEqual (RightToLeft.No, msbar.RightToLeft, "R1");
-			
-		}
-		
-		[Test]
-		public void ProtMethodTest ()
-		{
-			MyVScrollBar msbar = new MyVScrollBar ();
-			
-			Assert.AreEqual (16, msbar.MyDefaultSize.Width, "D3");
-			Assert.AreEqual (80, msbar.MyDefaultSize.Height, "D4");
-		}		
-	}
-                  
-        [TestFixture]
-        public class HScrollBarTestEventsOrder
-        {  	  			
-		public string [] ArrayListToString (ArrayList arrlist)
-		{
-			string [] retval = new string [arrlist.Count];
-			for (int i = 0; i < arrlist.Count; i++)
-			  retval[i] = (string)arrlist[i];
-			return retval;
-		}
-		
-		[Test]
-		public void CreateEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void BackColorChangedEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",
-				  "OnBackColorChanged",
-				  "OnInvalidated"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.BackColor = Color.Aqua;
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void BackgroundImageChangedEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",
-				  "OnBackgroundImageChanged",
-				  "OnInvalidated"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test, Ignore ("Not implemented yet, needs msg")]
-		public void ClickEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",
-				  "OnClick"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);			
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}		
-		
-		[Test, Ignore ("Not implemented yet, needs msg")]
-		public void DoubleClickEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",
-				  "OnDoubleClick"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);			
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void FontChangedEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			FontDialog myFontDialog = new FontDialog();
-			s.Font = myFontDialog.Font;
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void ForeColorChangedEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",
-				  "OnForeColorChanged",
-				  "OnInvalidated"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.ForeColor = Color.Aqua;
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void ImeModeChangedChangedEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",		
-				  "OnImeModeChanged"		
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.ImeMode = ImeMode.Katakana;
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void MouseDownEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.MouseRightDown ();
-		   
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void MouseMoveEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-		        s.MoveMouse ();
-		   
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void MouseUpEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-		        s.MouseRightUp ();
-		   
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void PaintEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.Visible = true;
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test, Ignore ("Not implemented yet, needs msg.")]
-		public void ScrollEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);			
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-		
-		[Test]
-		public void TextChangedEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",
-				  "OnTextChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.Text = "foobar";
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}		
-		
-		[Test]
-		public void ValueChangedEventsOrder ()
-		{
-			string[] EventsWanted = {
-				"OnHandleCreated",
-				  "OnBindingContextChanged",
-				  "OnBindingContextChanged",
-				  "OnValueChanged"
-			};  		
-			Form myform = new Form ();
-			myform.Visible = true;
-			MyScrollBar s = new MyScrollBar ();
-			myform.Controls.Add (s);
-			s.Value = 10;
-			
-			Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
-		}
-	}         
+    {
+	    private ArrayList results = new ArrayList ();
+     public MyScrollBar () : base ()
+	     {}
+
+	    protected override void OnBackColorChanged (EventArgs e)
+	     {
+		     results.Add ("OnBackColorChanged");
+		     base.OnBackColorChanged (e);
+	     }
+
+	    protected override void OnBackgroundImageChanged (EventArgs e)
+	     {
+		     results.Add ("OnBackgroundImageChanged");
+		     base.OnBackgroundImageChanged (e);
+	     }
+
+	    protected override void OnClick (EventArgs e)
+	     {
+		     results.Add ("OnClick");
+		     base.OnClick (e);
+	     }
+
+	    protected override void OnDoubleClick (EventArgs e)
+	     {
+		     results.Add ("OnDoubleClick");
+		     base.OnDoubleClick (e);
+	     }
+
+	    protected override void OnFontChanged (EventArgs e)
+	     {
+		     results.Add ("OnFontChanged");
+		     base.OnFontChanged (e);
+	     }
+
+	    protected override void OnForeColorChanged (EventArgs e)
+	     {
+		     results.Add ("OnForeColorChanged");
+		     base.OnForeColorChanged (e);
+	     }
+
+	    protected override void OnImeModeChanged (EventArgs e)
+	     {
+		     results.Add ("OnImeModeChanged");
+		     base.OnImeModeChanged (e);
+	     }
+
+	    protected override void OnMouseDown (MouseEventArgs e)
+	     {
+		     results.Add ("OnMouseDown");
+		     base.OnMouseDown (e);
+	     }
+
+	    protected override void OnMouseMove (MouseEventArgs e)
+	     {
+		     results.Add ("OnMouseMove");
+		     base.OnMouseMove (e);
+	     }
+
+	    protected override void OnMouseEnter (EventArgs e)
+	     {
+		     results.Add ("OnMouseEnter");
+		     base.OnMouseEnter (e);
+	     }
+
+	    protected override void OnMouseLeave (EventArgs e)
+	     {
+		     results.Add ("OnMouseLeave");
+		     base.OnMouseLeave (e);
+	     }
+
+	    protected override void OnMouseHover (EventArgs e)
+	     {
+		     results.Add ("OnMouseHover");
+		     base.OnMouseHover (e);
+	     }
+
+	    protected override void OnMouseUp (MouseEventArgs e)
+	     {
+		     results.Add ("OnMouseUp");
+		     base.OnMouseUp (e);
+	     }
+
+	    protected override void OnHandleCreated (EventArgs e)
+	     {
+		     results.Add ("OnHandleCreated");
+		     base.OnHandleCreated (e);
+	     }
+
+	    protected override void OnBindingContextChanged (EventArgs e)
+	     {
+		     results.Add ("OnBindingContextChanged");
+		     base.OnBindingContextChanged (e);
+	     }
+
+	    protected override void OnInvalidated (InvalidateEventArgs e)
+	     {
+		     results.Add("OnInvalidated");
+		     base.OnInvalidated (e);
+	     }
+
+	    protected override void OnResize (EventArgs e)
+	     {
+		     results.Add("OnResize");
+		     base.OnResize (e);
+	     }
+
+	    protected override void OnSizeChanged (EventArgs e)
+	     {
+		     results.Add("OnSizeChanged");
+		     base.OnSizeChanged (e);
+	     }
+
+	    protected override void OnLayout (LayoutEventArgs e)
+	     {
+		     results.Add("OnLayout");
+		     base.OnLayout (e);
+	     }
+
+	    protected override void OnVisibleChanged (EventArgs e)
+	     {
+		     results.Add("OnVisibleChanged");
+		     base.OnVisibleChanged (e);
+	     }
+
+	    protected override void OnScroll (ScrollEventArgs e)
+	     {
+		     results.Add("OnScroll");
+		     base.OnScroll (e);
+	     }
+
+	    protected override void OnTextChanged (EventArgs e)
+	     {
+		     results.Add("OnTextChanged");
+		     base.OnTextChanged (e);
+	     }
+
+	    protected override void OnValueChanged (EventArgs e)
+	     {
+		     results.Add("OnValueChanged");
+		     base.OnValueChanged (e);
+	     }
+
+	    protected override void OnPaint (PaintEventArgs e)
+	     {
+		     results.Add("OnPaint");
+		     base.OnPaint (e);
+	     }
+
+	    public ArrayList Results {
+		    get {	return results; }
+	    }
+
+	    public void MoveMouse ()
+	     {
+		     Message m;
+
+		     m = new Message ();
+
+		     m.Msg = (int)WndMsg.WM_NCHITTEST;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x0;
+		     m.LParam = (IntPtr)0x1c604ea;
+		     this.WndProc(ref m);
+
+		     m.Msg = (int)WndMsg.WM_SETCURSOR;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x100448;
+		     m.LParam = (IntPtr)0x2000001;
+		     this.WndProc(ref m);
+
+		     m.Msg = (int)WndMsg.WM_MOUSEFIRST;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x0;
+		     m.LParam = (IntPtr)0x14000b;
+		     this.WndProc(ref m);
+
+		     m.Msg = (int)WndMsg.WM_MOUSEHOVER;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x0;
+		     m.LParam = (IntPtr)0x14000b;
+		     this.WndProc(ref m);
+	     }
+
+	    public void MouseClick()
+	     {
+
+		     Message m;
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_LBUTTONDOWN;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_LBUTTONUP;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+	     }
+
+	    public void MouseDoubleClick ()
+	     {
+		     MouseClick ();
+		     MouseClick ();
+	     }
+	    public void MouseRightDown()
+	     {
+		     Message m;
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_RBUTTONDOWN;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+	     }
+
+	    public void MouseRightUp()
+	     {
+		     Message m;
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_RBUTTONUP;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+	     }
+
+	    public void ScrollNow ()
+	     {
+		     Message m;
+
+		     m = new Message ();
+
+		     m.Msg = 8468;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x1;
+		     m.LParam = (IntPtr)0x1a051a;
+		     this.WndProc(ref m);
+
+		     m.Msg = 233;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x1;
+		     m.LParam = (IntPtr)0x12eb34;
+		     this.WndProc(ref m);
+	     }
+    }
+   [TestFixture]
+   public class ScrollbarTest
+    {
+	    [Test]
+	    public void PubPropTest ()
+	       {
+		       MyScrollBar myscrlbar = new MyScrollBar ();
+
+		       // B
+		       myscrlbar.BackColor = Color.Red;
+		       Assert.AreEqual (255, myscrlbar.BackColor.R, "B2");
+		       myscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
+		       Assert.AreEqual (16, myscrlbar.BackgroundImage.Height, "B3");
+
+		       // F
+		       Assert.AreEqual ("ff000000", myscrlbar.ForeColor.Name, "F1");
+
+		       // I
+		       //Assert.AreEqual (ImeMode.Disable, myscrlbar.ImeMode, "I1");
+
+		       // L
+		       Assert.AreEqual (10, myscrlbar.LargeChange, "L1");
+
+		       // M
+		       Assert.AreEqual (100, myscrlbar.Maximum, "M1");
+		       Assert.AreEqual (0, myscrlbar.Minimum, "M2");
+		       myscrlbar.Maximum = 300;
+		       myscrlbar.Minimum = 100;
+		       Assert.AreEqual (300, myscrlbar.Maximum, "M3");
+		       Assert.AreEqual (100, myscrlbar.Minimum, "M4");
+
+		       // S
+		       Assert.AreEqual (null, myscrlbar.Site, "S1");
+		       Assert.AreEqual (1, myscrlbar.SmallChange, "S2");
+		       myscrlbar.SmallChange = 10;
+		       Assert.AreEqual (10, myscrlbar.SmallChange, "S3");
+
+		       // T
+		       Assert.AreEqual (false, myscrlbar.TabStop, "T1");
+		       myscrlbar.TabStop = true;
+		       Assert.AreEqual (true, myscrlbar.TabStop, "T2");
+		       Assert.AreEqual ("", myscrlbar.Text, "T3");
+		       myscrlbar.Text = "MONO SCROLLBAR";
+		       Assert.AreEqual ("MONO SCROLLBAR", myscrlbar.Text, "T4");
+
+		       // V
+		       Assert.AreEqual (100, myscrlbar.Value, "V1");
+		       myscrlbar.Value = 150;
+		       Assert.AreEqual (150, myscrlbar.Value, "V2");
+	       }
+
+	    [Test]
+	      [ExpectedException (typeof (ArgumentException))]
+	    public void ExceptionValueTest ()
+	       {
+		       MyScrollBar myscrlbar = new MyScrollBar ();
+		       myscrlbar.Minimum = 10;
+		       myscrlbar.Maximum = 20;
+		       myscrlbar.Value = 9;
+		       myscrlbar.Value = 21;
+	       }
+
+	    [Test]
+	      [ExpectedException (typeof (ArgumentException))]
+	    public void ExceptionSmallChangeTest ()
+	       {
+		       MyScrollBar myscrlbar = new MyScrollBar ();
+		       myscrlbar.SmallChange = -1;
+	       }
+
+	    [Test]
+	      [ExpectedException (typeof (ArgumentException))]
+	    public void ExceptionLargeChangeTest ()
+	       {
+		       MyScrollBar myscrlbar = new MyScrollBar ();
+		       myscrlbar.LargeChange = -1;
+	       }
+
+	    [Test, Ignore ("Look into this")]
+	    public void PubMethodTest ()
+	       {
+		       MyScrollBar myscrlbar = new MyScrollBar ();
+		       myscrlbar.Text = "New HScrollBar";
+		       Assert.AreEqual ("System.Windows.Forms.HScrollBar, Minimum: 0, Maximum: 100, Value: 0",
+					myscrlbar.ToString (), "T5");
+	       }
+    }
+
+   [TestFixture]
+   public class ScrollBarEventTest
+    {
+	    static bool eventhandled = false;
+	    public void ScrollBar_EventHandler (object sender,EventArgs e)
+	     {
+		     eventhandled = true;
+	     }
+
+	    public void ScrollBarMouse_EventHandler (object sender,MouseEventArgs e)
+	     {
+		     eventhandled = true;
+	     }
+
+	    public void ScrollBarScroll_EventHandler (object sender,ScrollEventArgs e)
+	     {
+		     eventhandled = true;
+	     }
+
+	    public void ScrollBarPaint_EventHandler (object sender,PaintEventArgs e)
+	     {
+		     eventhandled = true;
+	     }
+
+	    [Test]
+	    public void BackColorChangedTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       ScrollBar myHscrlbar = new HScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.BackColorChanged += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.BackColor = Color.Red;
+		       Assert.AreEqual (true, eventhandled, "B4");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void BackgroundImageChangedTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       ScrollBar myHscrlbar = new HScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.BackgroundImageChanged += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
+		       Assert.AreEqual (true, eventhandled, "B5");
+		       eventhandled = false;
+	       }
+
+	    [Test, Ignore ("Need to send proper Click / DoubleClick")]
+	    public void ClickTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.Click += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.MouseClick ();
+
+		       Assert.AreEqual (false, eventhandled, "C1");
+	       }
+
+	    [Test, Ignore ("Need to send proper Click / DoubleClick")]
+	    public void DoubleClickTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.DoubleClick += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.MouseDoubleClick ();
+
+		       Assert.AreEqual (false, eventhandled, "D1");
+	       }
+
+	    [Test]
+	    public void FontChangedTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       ScrollBar myHscrlbar = new HScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.FontChanged += new EventHandler (ScrollBar_EventHandler);
+		       FontDialog myFontDialog = new FontDialog();
+		       myHscrlbar.Font = myFontDialog.Font;
+		       Assert.AreEqual (true, eventhandled, "F2");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void ForeColorChangedTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       ScrollBar myHscrlbar = new HScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.ForeColorChanged += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.ForeColor = Color.Azure;
+		       Assert.AreEqual (true, eventhandled, "F3");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void ImeModehangedTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       ScrollBar myHscrlbar = new HScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.ImeModeChanged += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.ImeMode = ImeMode.Katakana;
+		       Assert.AreEqual (true, eventhandled, "I2");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void MouseDownTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.MouseDown += new MouseEventHandler (ScrollBarMouse_EventHandler);
+		       myHscrlbar.MouseRightDown ();
+
+		       Assert.AreEqual (true, eventhandled, "M5");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void MouseMoveTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.MouseMove += new MouseEventHandler (ScrollBarMouse_EventHandler);
+		       myHscrlbar.MoveMouse ();
+
+		       Assert.AreEqual (true, eventhandled, "M6");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void MouseUpTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.MouseUp += new MouseEventHandler (ScrollBarMouse_EventHandler);
+		       myHscrlbar.MouseRightUp ();
+
+		       Assert.AreEqual (true, eventhandled, "M7");
+		       eventhandled = false;
+	       }
+
+	    [Test, Ignore ("How can we force it to pain?")]
+	    public void PaintTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.Paint += new PaintEventHandler (ScrollBarPaint_EventHandler);
+
+		       myHscrlbar.Refresh ();
+
+		       Assert.AreEqual (true, eventhandled, "P1");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void ScrollTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.Scroll += new ScrollEventHandler (ScrollBarScroll_EventHandler);
+		       myHscrlbar.ScrollNow ();
+
+		       Assert.AreEqual (true, eventhandled, "S4");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void TextChangedTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.TextChanged += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.Text = "foo";
+
+		       Assert.AreEqual (true, eventhandled, "T6");
+		       eventhandled = false;
+	       }
+
+	    [Test]
+	    public void ValueChangeTest ()
+	       {
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar myHscrlbar = new MyScrollBar ();
+		       myform.Controls.Add (myHscrlbar);
+		       myHscrlbar.Value = 40 ;
+		       myHscrlbar.ValueChanged += new EventHandler (ScrollBar_EventHandler);
+		       myHscrlbar.Value = 50 ;
+		       Assert.AreEqual (true, eventhandled, "V3");
+		       eventhandled = false;
+	       }
+    }
+
+public class MyHScrollBar : HScrollBar
+    {
+     public MyHScrollBar () : base ()
+	     {
+	     }
+
+	    public Size MyDefaultSize {
+		    get { return DefaultSize; }
+	    }
+
+	    public CreateParams MyCreateParams {
+		    get { return CreateParams; }
+	    }
+    }
+
+   [TestFixture]
+   public class MyHScrollBarTest
+    {
+	    [Test]
+	    public void ProtectedTest ()
+	       {
+		       MyHScrollBar msbar = new MyHScrollBar ();
+
+		       Assert.AreEqual (80, msbar.MyDefaultSize.Width, "D1");
+		       Assert.AreEqual (21, msbar.MyDefaultSize.Height, "D2");
+	       }
+    }
+
+public class MyVScrollBar : VScrollBar
+    {
+     public MyVScrollBar () : base ()
+	     {
+	     }
+
+	    public Size MyDefaultSize {
+		    get { return DefaultSize; }
+	    }
+
+	    public CreateParams MyCreateParams {
+		    get { return CreateParams; }
+	    }
+    }
+
+   [TestFixture]
+   public class MyVScrollBarTest
+    {
+	    [Test]
+	    public void PubMethodTest ()
+	       {
+		       MyVScrollBar msbar = new MyVScrollBar ();
+
+		       Assert.AreEqual (RightToLeft.No, msbar.RightToLeft, "R1");
+
+	       }
+
+	    [Test]
+	    public void ProtMethodTest ()
+	       {
+		       MyVScrollBar msbar = new MyVScrollBar ();
+
+		       Assert.AreEqual (21, msbar.MyDefaultSize.Width, "D3");
+		       Assert.AreEqual (80, msbar.MyDefaultSize.Height, "D4");
+	       }
+    }
+
+   [TestFixture]
+   public class HScrollBarTestEventsOrder
+    {
+	    public string [] ArrayListToString (ArrayList arrlist)
+	     {
+		     string [] retval = new string [arrlist.Count];
+		     for (int i = 0; i < arrlist.Count; i++)
+		       retval[i] = (string)arrlist[i];
+		     return retval;
+	     }
+
+	    [Test]
+	    public void CreateEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void BackColorChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnBackColorChanged",
+				 "OnInvalidated"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.BackColor = Color.Aqua;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void BackgroundImageChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnBackgroundImageChanged",
+				 "OnInvalidated"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test, Ignore ("Need to send proper Click / DoubleClick")]
+	    public void ClickEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.MouseClick ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test, Ignore ("Need to send proper Click / DoubleClick")]
+	    public void DoubleClickEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.MouseDoubleClick ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void FontChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       FontDialog myFontDialog = new FontDialog();
+		       s.Font = myFontDialog.Font;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ForeColorChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnForeColorChanged",
+				 "OnInvalidated"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.ForeColor = Color.Aqua;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ImeModeChangedChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnImeModeChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.ImeMode = ImeMode.Katakana;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void MouseDownEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnMouseDown"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.MouseRightDown ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void MouseMoveEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnMouseMove",
+				 "OnMouseHover"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.MoveMouse ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void MouseUpEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnMouseUp"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.MouseRightUp ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void PaintEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnInvalidated"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.Visible = true;
+		       s.Refresh ();
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ScrollEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnScroll",
+				 "OnValueChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.ScrollNow ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void TextChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnTextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.Text = "foobar";
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ValueChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "OnHandleCreated",
+				 "OnBindingContextChanged",
+				 "OnBindingContextChanged",
+				 "OnValueChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar s = new MyScrollBar ();
+		       myform.Controls.Add (s);
+		       s.Value = 10;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+    }
+
+public class MyScrollBar2 : HScrollBar
+    {
+	    protected ArrayList results = new ArrayList ();
+     public MyScrollBar2 () : base ()
+	     {
+		     this.HandleCreated += new EventHandler (HandleCreated_Handler);
+		     this.BackColorChanged += new EventHandler (BackColorChanged_Handler);
+		     this.BackgroundImageChanged += new EventHandler (BackgroundImageChanged_Handler);
+		     this.BindingContextChanged += new EventHandler (BindingContextChanged_Handler);
+		     this.Click += new EventHandler (Click_Handler);
+		     this.DoubleClick += new EventHandler (DoubleClick_Handler);
+		     this.FontChanged += new EventHandler (FontChanged_Handler);
+		     this.ForeColorChanged += new EventHandler (ForeColorChanged_Handler);
+		     this.ImeModeChanged += new EventHandler (ImeModeChanged_Handler);
+		     this.MouseDown += new MouseEventHandler (MouseDown_Handler);
+		     this.MouseMove += new MouseEventHandler (MouseMove_Handler);
+		     this.MouseUp += new MouseEventHandler (MouseUp_Handler);
+		     this.Invalidated += new InvalidateEventHandler (Invalidated_Handler);
+		     this.Resize += new EventHandler (Resize_Handler);
+		     this.SizeChanged += new EventHandler (SizeChanged_Handler);
+		     this.Layout += new LayoutEventHandler (Layout_Handler);
+		     this.VisibleChanged += new EventHandler (VisibleChanged_Handler);
+		     this.Paint += new PaintEventHandler (Paint_Handler);
+		     this.Scroll += new ScrollEventHandler (Scroll_Handler);
+		     this.TextChanged += new EventHandler (TextChanged_Handler);
+		     this.ValueChanged += new EventHandler (ValueChanged_Handler);
+	     }
+
+	    protected void HandleCreated_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("HandleCreated");
+	     }
+
+	    protected void BackColorChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("BackColorChanged");
+	     }
+
+	    protected void BackgroundImageChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("BackgroundImageChanged");
+	     }
+
+	    protected void Click_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("Click");
+	     }
+
+	    protected void DoubleClick_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("DoubleClick");
+	     }
+
+	    protected void FontChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("FontChanged");
+	     }
+
+	    protected void ForeColorChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("ForeColorChanged");
+	     }
+
+	    protected void ImeModeChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("ImeModeChanged");
+	     }
+
+	    protected void MouseDown_Handler (object sender, MouseEventArgs e)
+	     {
+		     results.Add ("MouseDown");
+	     }
+
+	    protected void MouseMove_Handler (object sender, MouseEventArgs e)
+	     {
+		     results.Add ("MouseMove");
+	     }
+
+	    protected void MouseUp_Handler (object sender, MouseEventArgs e)
+	     {
+		     results.Add ("MouseUp");
+	     }
+
+	    protected void BindingContextChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("BindingContextChanged");
+	     }
+
+	    protected void Invalidated_Handler (object sender, InvalidateEventArgs e)
+	     {
+		     results.Add("Invalidated");
+	     }
+
+	    protected void Resize_Handler (object sender, EventArgs e)
+	     {
+		     results.Add("Resize");
+	     }
+
+	    protected void SizeChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add("SizeChanged");
+	     }
+
+	    protected void Layout_Handler (object sender, LayoutEventArgs e)
+	     {
+		     results.Add("Layout");
+	     }
+
+	    protected void VisibleChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add("VisibleChanged");
+	     }
+
+	    protected void Paint_Handler (object sender, PaintEventArgs e)
+	     {
+		     results.Add("Paint");
+	     }
+
+	    protected void Scroll_Handler (object sender, ScrollEventArgs e)
+	     {
+		     results.Add ("Scroll");
+	     }
+
+	    protected void TextChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("TextChanged");
+	     }
+
+	    protected void ValueChanged_Handler (object sender, EventArgs e)
+	     {
+		     results.Add ("ValueChanged");
+	     }
+
+	    public ArrayList Results {
+		    get {	return results; }
+	    }
+
+	    public void MoveMouse ()
+	     {
+		     Message m;
+
+		     m = new Message ();
+
+		     m.Msg = (int)WndMsg.WM_NCHITTEST;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x0;
+		     m.LParam = (IntPtr)0x1c604ea;
+		     this.WndProc(ref m);
+
+		     m.Msg = (int)WndMsg.WM_SETCURSOR;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x100448;
+		     m.LParam = (IntPtr)0x2000001;
+		     this.WndProc(ref m);
+
+		     m.Msg = (int)WndMsg.WM_MOUSEFIRST;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x0;
+		     m.LParam = (IntPtr)0x14000b;
+		     this.WndProc(ref m);
+
+		     m.Msg = (int)WndMsg.WM_MOUSEHOVER;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x0;
+		     m.LParam = (IntPtr)0x14000b;
+		     this.WndProc(ref m);
+	     }
+
+	    public void MouseRightDown()
+	     {
+		     Message m;
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_RBUTTONDOWN;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+	     }
+
+	    public void MouseClick()
+	     {
+		     Message m;
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_LBUTTONDOWN;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_LBUTTONUP;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+	     }
+
+	    public void MouseDoubleClick ()
+	     {
+		     MouseClick ();
+		     MouseClick ();
+	     }
+
+	    public void MouseRightUp()
+	     {
+		     Message m;
+
+		     m = new Message();
+
+		     m.Msg = (int)WndMsg.WM_RBUTTONUP;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x01;
+		     m.LParam = (IntPtr)0x9004f;
+		     this.WndProc(ref m);
+	     }
+
+	    public void ScrollNow ()
+	     {
+		     Message m;
+
+		     m = new Message ();
+
+		     m.Msg = 8468;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x1;
+		     m.LParam = (IntPtr)0x1a051a;
+		     this.WndProc(ref m);
+
+		     m.Msg = 233;
+		     m.HWnd = this.Handle;
+		     m.WParam = (IntPtr)0x1;
+		     m.LParam = (IntPtr)0x12eb34;
+		     this.WndProc(ref m);
+	     }
+    }
+
+   [TestFixture]
+   public class HScrollBarTestEventsOrder2
+    {
+	    public string [] ArrayListToString (ArrayList arrlist)
+	     {
+		     string [] retval = new string [arrlist.Count];
+		     for (int i = 0; i < arrlist.Count; i++)
+		       retval[i] = (string)arrlist[i];
+		     return retval;
+	     }
+
+	    [Test]
+	    public void CreateEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void BackColorChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "Invalidated",
+				 "BackColorChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.BackColor = Color.Aqua;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void BackgroundImageChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "Invalidated",
+				 "BackgroundImageChanged"
+
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test, Ignore ("Need to send proper Click / DoubleClick")]
+	    public void ClickEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.MouseClick ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test, Ignore ("Need to send proper Click / DoubleClick")]
+	    public void DoubleClickEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.MouseDoubleClick ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void FontChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       FontDialog myFontDialog = new FontDialog();
+		       s.Font = myFontDialog.Font;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ForeColorChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "Invalidated",
+				 "ForeColorChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.ForeColor = Color.Aqua;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ImeModeChangedChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "ImeModeChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.ImeMode = ImeMode.Katakana;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void MouseDownEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "MouseDown"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.MouseRightDown ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void MouseMoveEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "MouseMove"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.MoveMouse ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void MouseUpEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "MouseUp"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.MouseRightUp ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void PaintEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "Invalidated"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.Visible = true;
+		       s.Refresh ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ScrollEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "Scroll",
+				 "ValueChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.ScrollNow ();
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void TextChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "TextChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.Text = "foobar";
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+
+	    [Test]
+	    public void ValueChangedEventsOrder ()
+	       {
+		       string[] EventsWanted = {
+			       "HandleCreated",
+				 "BindingContextChanged",
+				 "BindingContextChanged",
+				 "ValueChanged"
+		       };
+		       Form myform = new Form ();
+		       myform.Visible = true;
+		       MyScrollBar2 s = new MyScrollBar2 ();
+		       myform.Controls.Add (s);
+		       s.Value = 10;
+
+		       Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
+	       }
+    }
+
 }