Thanks B.Killer!! That just cleared up the coding so much!

Code:

Private Sub ControlChanged() Handles optMetric.CheckedChanged, optBelowGround.CheckedChanged, optImperial.CheckedChanged, UpdateButton.Click
mainfunction()
End Sub
With it re-arranged I dont even have to have a wait function! Can I use this code for comboboxes and text boxes? This way the Results will be able to always update themselves without having to click an update button??