I have committed some code which provides a public API for the creation of a GraphicsContext for any WinForms control. It's in OpenTK.Platform.Utilities.  It works by calling OpenTK.Platform.Utilities.CreateGraphicsContext passing in a graphics mode, and either the control or the control handle. Two outputs are given, the GraphicsContext object, and an IWindowInfo object. An IWindowInfo object can be created separately if desired by calling CreateWindowInfo.
Initially I was having problems with the code on Linux, it was giving errors making the context current. Then I realized that I was getting context creation errors when running glxinfo and glxgears. Since it was long past due that I upgrade to OpenSuSe 11.0, I did that and now have tested this code under Mesa and with the latest nvidia driver and it works.
The point of the above paragraph is I think I found another bug, which was a bit of a red herring when I was troubleshooting the context creation. In the X11GraphicsMode code, the out value from Glx.GetConfig(*,*,GLXAttributes.Samples, out samples) seems to be just random. Sometimes it was negative, and then when the default graphics mode was created it would throw an exception saying samples had to be positive. Has this been encountered before?
 Originally I had planned to put this in the OpenTK.Utilities.dll but it seems to fit better in OpenTK.Platform.Utilities.