私のコードでは、form1からiを使用してform2を起動し.Show()ます。
Form2 f2 = new Form2();
f2.show();
閉じるform1までブロックし、閉じたらコードを続行します。form2form2
.Show()表示している新しいフォームが表示されますが、メインフォームに戻ってコントロールを使用できるようになり、メインフォーム.ShowDialog()が閉じられない限り、メインフォームにアクセスできなくなります。
f2.ShowDialog();
    使ってみて
Form2 f2 = new Form2();
f2.showDialog();
    私はその方法をテストしましたが、機能しませんでしたが、以下のコードのみが機能しました:
    private void button1_Click_1(object sender, EventArgs e)
    {
        Form2 frm = new Form2();
        this.Enabled = false;
        frm.Show();
        frm.FormClosing += new FormClosingEventHandler(frm_FormClosing);
        frm.Show();
    }
    private void frm_FormClosing(object sender, FormClosingEventArgs e)
    {
        this.Enabled = true;
    }