Panel コントロールの厄介な癖に遭遇しています。表示されているコントロールのみをスクロールします。コードで表示すると、スクロールバーを使用した場合、間違った Location プロパティが表示されます。ご自身で修正を行う必要があります。次のようにします。
private void checkBox1_Checkedchanged(object sender, EventArgs e)
{
if (!textBox1.Visible) {
textBox1.Location = new Point(textBox1.Left + panel1.AutoScrollPosition.X,
textBox1.Top + panel1.AutoScrollPosition.Y);
textBox1.Visible = true;
}
}
より良い代替手段は、代わりに Enabled プロパティを使用することであり、ユーザーの方向感覚を失わせることもはるかに少なくなります。デザイナーで False に設定してから、次のようにします。
private void checkBox1_Checkedchanged(object sender, EventArgs e)
{
textBox1.Enabled = true;
}