There is not a single correct method to start GUI programming. Generally speaking, however, one should start with “what the program is supposed to do”, rather than “how the program is supposed to do it”. This means that designing a form with GUI elements is usually not the first step of developing a GUI program, let alone writing event handlers. This is especially true for large and complex programs.
A field of computer science, systems analysis, studies the processes, methods and theories of specifying, designing, developing, testing and deploying software systems. Much of that field applies to GUI programs as well as “backend” systems that have little or no user interaction. Please take a course in systems analysis if you have to participate in the development of a complex system or application.
For other applications, GUI programming may only need to supplement the built-in capabilities of a program. For example, Microsoft Access is a mature and feature-rich database front-end product. It already contains much of the core functionality of a database front-end. However, as a general-purpose product, it may not have some features that are specific to the application of the product. As a result, GUI programming can be applied to customize Microsoft Access so support such application specific features.
One example is a data entry form that performs application specific input data validation. While Access and SQL (structured query language) have a fair amount of validation methods, neither is specific to a particular application. Furthermore, upon the detection of invalid data, Access and SQL do not generate any user-friendly or application-specific error messages. By means of GUI programming, meaningful error messages can be reported for application-specific validation rules.
Even in this case, the first step to start GUI programming is the thorough understand of data validation rules, rather than designing GUI elements in a form.