>>931
SuspendLayout しているのでDock=Fillが効かずに
Widthがデフォルト(150)のままになっている。

そこでSplitterDistance=300にしてもWidthを超えているため
SplitterDistance=121になってしまう。
(これはSplitterContainerの仕様らしい)

その後ResumeLayoutしたときにDock=Fillが効いて
Widthが変更されるのでSplitterDistanceも変更される。
(これもSplitterContainerの仕様らしい)

解決策はsp.SplitterDistance=300の前に
sp.Width=form.ClientSize.Widthとでも入れればいいんじゃない?
(フォームデザイナが生成するコードではSizeを固定値で設定してるけど)