コード例 #1
0
        /// <summary>
        /// Вызывает метод провердки введенных данных всех контролов
        /// </summary>
        /// <param name="control"></param>
        /// <returns></returns>
        private bool CheckData(Control control)
        {
            if (control == null || control.Controls == null)
            {
                return(true);
            }


            // Просматриваем до первой "провалившейся" проверки
            foreach (Control c in control.Controls)
            {
                EditObjectControl cc = c as EditObjectControl;
                if (cc != null)
                {
                    if (!cc.CheckData())
                    {
                        return(false);
                    }
                    else // Рекурсивно просматриваем объекты панели например
                    if (!CheckData(c))
                    {
                        return(false);
                    }
                }
            }


            // Все проверки завершились успешно
            return(true);
        }
コード例 #2
0
        /// <summary>
        /// Когда контрол был удален, мы должны отписаться от его событий
        /// </summary>
        /// <param name="e"></param>
        protected override void OnControlRemoved(ControlEventArgs e)
        {
            EditObjectControl c = e.Control as EditObjectControl;

            if (c != null)
            {
                c.ControlModified -= EditObjectControl_ControlModified;
            }
        }
コード例 #3
0
        /// <summary>
        /// Диалог сам обрабатывает контролы EdiObjectControl
        /// </summary>
        /// <param name="e"></param>
        protected override void OnControlAdded(ControlEventArgs e)
        {
            EditObjectControl c = e.Control as EditObjectControl;

            if (c != null)
            {
                c.ControlModified += new ControlEventHandler(EditObjectControl_ControlModified);
            }
        }
コード例 #4
0
 /// <summary>
 /// Изменить объект всем контролам
 /// </summary>
 /// <param name="control"></param>
 private void ChangeObject(Control control)
 {
     if (control == null || control.Controls == null)
     {
         return;
     }
     //
     foreach (Control c in control.Controls)
     {
         EditObjectControl cc = c as EditObjectControl;
         if (cc != null)
         {
             cc.AttachedObject = _AttachedObject;
         }
         else // Рекурсивно просматриваем объекты панели например
         {
             ChangeObject(c);
         }
     }
 }
コード例 #5
0
        /// <summary>
        /// Вызывает метод ApplyChanges у каждого контрола
        /// </summary>
        /// <param name="control"></param>
        /// <returns></returns>
        private void ApplyChanges(Control control)
        {
            if (control == null || control.Controls == null)
            {
                return;
            }

            // Просматриваем до первой "провалившейся" проверки
            foreach (Control c in control.Controls)
            {
                EditObjectControl cc = c as EditObjectControl;
                if (cc != null)
                {
                    cc.ApplyChanges();
                }
                else // Рекурсивно просматриваем объекты панели например
                {
                    ApplyChanges(c);
                }
            }
        }