You cannot adapt that code to work in Windows Forms, at all.
If there any benefit to using Windows Forms over WPF? Sure, the learning curve for Windows Forms is much easier compared to WPF. The advantage WPF has over Windows Forms is incredible power to create a UI over what is possible in Windows Forms.
Get this: GitHub - 5everin/3D-Model-Viewer: A software renderer written in vb.net[^] ... and see if it won't open without an error usg VS2010 (as you suggest) ... but regardless of whether it loads or not, dissecting the classes just to have a look at how something apparently more modern in it's approach to .obj manipulation and viewing could prove informative enough for you to have a go at it yourself ... starting with a VS2010 project, scratchwise.
I agree need to know what line is throwing the error.
Can you see what ex.StackTrace shows in your Catch ex as Exception block?
Below lets you create a breakpoint when an error is raised then you can resume to the line giving the error This is just to help you find your error line - use catch/try/end try otherwise
To debug remove your try, catch, end try then...
' <<Your code goes here>>' at end of function/sub add...
MsgBox Error, vbCritical, CStr(Erl) + " " + CStr(Err)
Resume 'quit_proc'< Note the comment before quit_proc. Put breakpoint at Resume line (F9) then when hit, step (F8) through to the line giving the error'Remove the 'comment before quit_proc when not debugging or else you will get in a loop if any error is raised or (better) revert to your Try, Catch, End Try construct