Windows Form ChildForm Hakkında

Merhaba değerli üstatlar. Bir Toggle Buttonun “CheckChanged” özelliğinde bazı işlemler yapmak istiyorum ; Toggle buttonda değişiklik olduğu zaman direkt olarak ekrana RegisterForm adlı formun gelmesini istiyorum, fakat sınıfın örneğini tanımladığım halde gelmiyor. Nerede yanlış yapıyorum ?

FormMain.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//FontAwesome
using FontAwesome.Sharp;
using ZyroBot.Forms;

namespace ZyroBot
{
    public partial class FormMainMenu : Form
    {
        //Fields
        private IconButton currentBtn;
        public Panel leftBorderBtn;
        public Form currentChildForm;

        //Constructor
        public FormMainMenu()
        {
            InitializeComponent();
            leftBorderBtn = new Panel();
            leftBorderBtn.Size = new Size(7, 60);
            panelMenu.Controls.Add(leftBorderBtn);
            //Form
            this.Text = string.Empty;
            this.ControlBox = false;
            this.DoubleBuffered = true;
            this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
        }
        //Structs
        private struct RGBColors
        {
            public static Color colorIns = Color.FromArgb(138, 58, 185);
            public static Color colorFace = Color.FromArgb(66, 103, 178);
            public static Color colorTwit = Color.FromArgb(29, 161, 242);
            public static Color colorTik = Color.FromArgb(0, 242, 234);
            public static Color colorPin = Color.FromArgb(230, 0, 35);
            public static Color colorLink = Color.FromArgb(0, 160, 220);
            public static Color colorGostergePaneli = Color.FromArgb(216, 191, 216);
            public static Color colorKullaniciTerc = Color.FromArgb(216, 191, 216);
        }

        //Methods
        private void ActivateButton(object senderBtn, Color color)
        {
            if (senderBtn != null)
            {
                DisabeButton();
                currentBtn = (IconButton)senderBtn;
                currentBtn.BackColor = Color.FromArgb(37, 36, 81);
                //currentBtn.ForeColor = color;
                currentBtn.ForeColor = Color.White;// Butona tıklanınca değişecek renk.
                currentBtn.TextAlign = ContentAlignment.MiddleCenter;
                currentBtn.IconColor = color;
                currentBtn.TextImageRelation = TextImageRelation.TextBeforeImage;
                currentBtn.ImageAlign = ContentAlignment.MiddleRight;
                //Left border button
                leftBorderBtn.BackColor = color;
                leftBorderBtn.Location = new Point(0, currentBtn.Location.Y);
                leftBorderBtn.Visible = true;
                leftBorderBtn.BringToFront();
                //Icon Current Child Form
                iconCurrentChildForm.IconChar = currentBtn.IconChar;
                iconCurrentChildForm.IconColor = color;
                //Top Panel Color
            }
        }

        private void DisabeButton()
        {
            if (currentBtn != null)
            {
                currentBtn.BackColor = Color.FromArgb(31, 30, 68);
                currentBtn.ForeColor = Color.Gainsboro;
                currentBtn.TextAlign = ContentAlignment.MiddleLeft;
                currentBtn.IconColor = Color.Gainsboro;
                currentBtn.TextImageRelation = TextImageRelation.ImageBeforeText;
                currentBtn.ImageAlign = ContentAlignment.MiddleLeft;
            }
        }

        public void OpenChildForm(Form childForm)
        {
            if (currentChildForm != null)
            {
                //open only form
                currentChildForm.Close();
            }
            currentChildForm = childForm;
            childForm.TopLevel = false;
            childForm.FormBorderStyle = FormBorderStyle.None;
            childForm.Dock = DockStyle.Fill;
            panelDesktop.Controls.Add(childForm);
            panelDesktop.Tag = childForm;
            childForm.BringToFront();
            childForm.Show();
            lblTitleChildForm.Text = childForm.Text;
        }

        private void btnInstagram_Click(object sender, EventArgs e)
        {
            rjDropdownMenu1.Show(btnInstagram, btnInstagram.Width, 0);
            ActivateButton(sender, RGBColors.colorIns);
            OpenChildForm(new FormInstagram());
        }

        private void btnFacebook_Click(object sender, EventArgs e)
        {
            ActivateButton(sender, RGBColors.colorFace);
            OpenChildForm(new FormFacebook());
        }

        private void btnTwitter_Click(object sender, EventArgs e)
        {
            ActivateButton(sender, RGBColors.colorTwit);
            OpenChildForm(new FormTwitter());
        }

        private void btnTiktok_Click(object sender, EventArgs e)
        {
            ActivateButton(sender, RGBColors.colorTik);
            OpenChildForm(new FormTiktok());
        }

        private void btnPinterest_Click(object sender, EventArgs e)
        {
            ActivateButton(sender, RGBColors.colorPin);
            OpenChildForm(new FormPinterest());
        }

        private void btnLinkedin_Click(object sender, EventArgs e)
        {
            ActivateButton(sender, RGBColors.colorLink);
            OpenChildForm(new FormLinkedin());
        }

        private void btnGostergePaneli_Click(object sender, EventArgs e)
        {
            ActivateButton(sender, RGBColors.colorGostergePaneli);
            OpenChildForm(new FormChartPanel());
        }

        private void btnTercihler_Click(object sender, EventArgs e)
        {

            ActivateButton(sender, RGBColors.colorKullaniciTerc);
            OpenChildForm(new FormUserPreferences());
        }

        private void btnHome_Click(object sender, EventArgs e)
        {
            if (currentChildForm != null)
            {
                currentChildForm.Close();
                Reset();
            }

        }


        private void Reset()
        {
            DisabeButton();
            leftBorderBtn.Visible = false;
            iconCurrentChildForm.IconChar = IconChar.Home;
            iconCurrentChildForm.IconColor = Color.MediumPurple;
            lblTitleChildForm.Text = "Zyro Panel";
        }
        //Drag Form
        [DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
        private extern static void ReleaseCapture();

        [DllImport("user32.DLL", EntryPoint = "SendMessage")]
        private extern static void Sendmessage(System.IntPtr hWnd, int wMsg, int wParam, int lParam);

        private void panelTitleBar_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            Sendmessage(this.Handle, 0x112, 0xf012, 0);
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void btnMaximize_Click(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Normal)
                WindowState = FormWindowState.Maximized;
            else
                WindowState = FormWindowState.Normal;
        }

        private void btnMinimize_Click(object sender, EventArgs e)
        {
            WindowState = FormWindowState.Minimized;
        }

        private void panelTitleBar_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (WindowState == FormWindowState.Normal)
                WindowState = FormWindowState.Maximized;
            else
                WindowState = FormWindowState.Normal;
        }

        private void FormMainMenu_Load(object sender, EventArgs e)
        {
            rjDropdownMenu1.IsMainMenu = true;
            //ActivateButton(sender, RGBColors.colorTik);
            OpenChildForm(new SozlesmeFormu());
        }

        private void btnInstagram_MouseEnter(object sender, EventArgs e)
        {
            rjDropdownMenu1.Show(btnInstagram, btnInstagram.Width, 0);
        }

    }

}

Toggle button ile işlem yaptığımda ekrana register formunun gelmesini sağlamak istiyorum. Bunu eğer (sallıyorum) ;

RegisterForm regForm = new RegisterForm();
regForm.Show();

Olarak çağırdığımda ana formdan bağımsız bir şekilde ekranda beliriyor. Oysa istediğim ana form’da diğer formlar gibi gözükmesi…

SozlesmeFormu.cs

namespace ZyroBot.Forms
{
    public partial class SozlesmeFormu : Form
    {

        public SozlesmeFormu()
        {
            InitializeComponent();
            textBox1.Multiline = true;
            textBox1.ScrollBars = ScrollBars.Both;
        }


        private void toggleSozlesme_CheckedChanged(object sender, EventArgs e)
        {
            toggleSozlesme.Enabled = false;
            toggleSozlesme.OnBackColor = Color.DarkGray;
            this.Close();

            FormMainMenu frmMain = new FormMainMenu();
            RegisterForm formRegister = new RegisterForm();
            frmMain.OpenChildForm(formRegister);
        }
    }
}

Bu sorunu nasıl aşabilirim ? Msdn forumlarında tam olarak şöyle bir yanıt aldım ;

hangi formun childi olduğunu belirtmeniz gerekir.

SozlesmeFormunda çağırdığınız yerde;
RegisterForm formRegister = new RegisterForm();
formRegister.MdiParent= this;
formRegister.Show();

MainFormda da ayrı bir form olarak çağırmıyorsunuz, control olarak ekleme yapıyorsunuz.

Evet, yukarıdaki yöntemi eklediğim zamanda şöyle bir hata alıyorum ;

System.ArgumentException: 'Form that was specified to be the MdiParent for this form is not an MdiContainer.
Parameter name: value'

Nasıl çözebilirim yardım eder misiniz lütfen?