Maybe this is fixed in SVN, but I noticed some problems with GameWindow's Dispose implementation when trying to subclass it. The main Dispose() method should be public and sealed, call GC.SuppressFinalize() and the protected virtual Dispose(bool). Also, neither of these functions should throw exceptions. (ObjectDisposeException is supposed to be raised on other methods and properties after disposal, but Dispose should be repeatable).
FxCop might help for some things like this. http://code.msdn.microsoft.com/codeanalysis/Release/ProjectReleases.aspx... Mostly it's annoying (might want to disable the naming rules for OpenTK) but it's helped to clean up my own project a lot.