Поместите панель в центр формы с помощью конструктора, а затем очистите свойство Anchor
, чтобы оно не было привязано ни к одному краю. Это будет держать его по центру при изменении размера формы, без изменения размера самой панели.
Если по какой-то причине вам нужно расположить панель в коде (например, в зависимости от того, что происходит во время загрузки формы), вы можете сделать что-то вроде этого:
// code for initializing the panel and setting
// its size goes here
_thePanel.Location = new Point(
this.ClientSize.Width / 2 - _thePanel.Size.Width / 2,
this.ClientSize.Height / 2 - _thePanel.Size.Height / 2);
_thePanel.Anchor = AnchorStyles.None;
Я полагаю, что это должно позаботиться о большинстве сценариев.