При запуске программы не происходит ресайз

Какой строкой? Shown += Form_Resize? Я ведь так уже пробовал, но это не помогает :man_shrugging:

И зачем тогда пихать его на десктоп и объявлять WinForms устаревшим? :thinking:

Так, постойте-ка :thinking: WinAPI это ключевой низкоуровневый интерфейс для взаимодействия с виндой. Только благодаря нему можно писать программы под винду. Там событие ресайза приходит после создания окна. Это СТАНДАРТНАЯ логика, которую не я придумал. Посмотрите сами иерархию событий и вы поймёте, что это WinForms ломает стандартную логику работы с системой.

А кто здесь себя оправдывает?

Дык тогда бы не помог и вызов события ресайза при создании формы самим винформсом.

Дело ж видимо было в том, что оно еще что-то масштабирует под шрифт и т.д.

Ну или что-то в этом направлении.

А Shown видимо тоже просто слишком рано.

Изменение AutoScaleMode не помюгает.

Shown и так последнее. Куда ещё позже-то?

Это про создание самой формы, а не про то, что внутри происходит.

Проблема же была в том, что у контролов (причем не на самой форме, а внутри табконтрола и т.п.) были неправильные размеры если выставлять их при загрузке, а если ресайзнуть форму позже, то правильные.
Есть например такое событие Control.Layout Event (System.Windows.Forms) | Microsoft Docs
Стандартные Anchor’ы и т.д. наверняка его используют.