/// <summary>
        ///
        /// </summary>
        /// <param name="controlBoxButton"></param>
        /// <returns></returns>
        internal bool GetControlBoxButtonVisible(ControlBoxButtonAction controlBoxButton)
        {
            try
            {
                FlowLayoutPanel    controlbox = FormCaptionPanel.Controls["ControlBox"] as FlowLayoutPanel;
                ControlBoxButton[] buttons    = controlbox.Controls.Cast <ControlBoxButton>().ToArray();

                foreach (ControlBoxButton cbb in buttons)
                {
                    if (cbb.ButtonAction == controlBoxButton)
                    {
                        return(cbb.Visible);
                    }
                }

                throw (new ArgumentException("No such button type is known or existing in the control box"));
            }
            catch
            {
                if (controlBoxButton == ControlBoxButtonAction.Maximize)
                {
                    return(mMaximizeBox);
                }
                if (controlBoxButton == ControlBoxButtonAction.Minimize)
                {
                    return(mMinimizeBox);
                }

                throw (new ArgumentException("No such button type is known or existing in the control box"));
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="controlBoxButton"></param>
 internal void SetControlBoxButtonVisible(ControlBoxButtonAction controlBoxButton, bool visible)
 {
     try
     {
         FlowLayoutPanel    controlbox = FormCaptionPanel.Controls["ControlBox"] as FlowLayoutPanel;
         ControlBoxButton[] buttons    = controlbox.Controls.Cast <ControlBoxButton>().ToArray();
         foreach (ControlBoxButton cbb in buttons)
         {
             if (cbb.ButtonAction == controlBoxButton)
             {
                 cbb.Visible = visible;
             }
         }
     }
     catch { }
 }