Как уже упоминалось, элемент управления с SplitContainer не изменяется в соответствии с элементом управления вкладкой, пока он не будет выбран. Если вы обрабатываете восстановление, устанавливая SplitterDistance в процентах (сохраненное сопротивление * fullDistance / 100) в случае FixedPanel.None, вы увидите, что разветвитель будет двигаться через некоторое время из-за точности вычислений.
Я нашел другое решение этой проблемы. Я подписываюсь на одно из событий, например событие Paint. Это событие происходит после изменения размера элемента управления, поэтому SplitContainer будет иметь правильное значение. После первого восстановления вы должны отписаться от этого события, чтобы восстановить только один раз:
private void MainForm_Load(object sender, EventArgs e)
{
splitContainerControl.Paint += new PaintEventHandler(splitContainerControl_Paint);
}
void splitContainerControl_Paint(object sender, PaintEventArgs e)
{
splitContainerControl.Paint -= splitContainerControl_Paint;
// Handle restoration here
}