Вы хотите узнать максимальные координаты всех элементов управления на определенной вкладке?Просто с LINQ:
int right = tab.Controls.Cast<Control>().Max(c => c.Right);
int bottom = tab.Controls.Cast<Control>().Max(c => c.Bottom);
Теперь, чтобы правильно выбрать размер формы, я думаю, вам просто нужно выяснить, насколько форма больше, чем ее TabPages ... Я думаю, что-то вроде этого:
int extraWidth = form.Width - tabControl.SelectedTab.Width;
int extraHeight = form.Height - tabControl.SelectedTab.Height;
Тогда вы просто делаете
form.Size = new Size(right + extraWidth, bottom + extraHeight);
(TabControl изменит размер автоматически, если его свойство Anchor
установлено на все четыре стороны.) Мне кажется, что это можетсбой, если пользователь изменяет размер формы очень мало ... вы можете компенсировать это, вычисляя extraWidth и extraHeight в событии Form.Load, а затем сохраняя эти значения, когда они понадобятся вам позже.