which is better solution

in the case of big project that have many controls

  1. put controls directly on each tabPage or
  2. put the controls on user control or form and then load it on the tabPage

Over the years I've been leaning more toward #2 because it's easier to manage. When all of the controls are directly inside your TabControl, they must have unique names regardless of whether they're on separate pages.

Hi, in my opinion if its a single page application, you may put all the contents in particular tabs however if its a huge application with multiple scenarios and pages, I advise you to use user controls as they are reusable and have many advantages and also you need not change the contents again and again in every page, just make the changes in the user control and you are good to go.
Hope that helps :)

Also of note is that user controls themselves have overhead in terms of maintenance due to the boilerplate required. It's not much, but enough to give one pause for small projects. For medium to large sized projects, the modularization benefit overwhelms the extra maintenance of more code.