Exemple #1
0
        private void AddInternal <TControl> (TControl instance)
            where TControl : Control
        {
            var t = typeof(TControl);

            if ((WaitingForFocusBeneficiary != null) && (WaitingForFocusBeneficiary != instance))
            {
                WaitingForFocusBeneficiary.FocusBeneficiary = instance;
                WaitingForFocusBeneficiary = null;
            }

            var index = NextIndex++;

            if (index >= Children.Count)
            {
                Children.Add(instance);
            }
            else
            {
                var previous = Children[index];
                if (previous == instance)
                {
                    return;
                }

                Children[index] = instance;
                CurrentRemovedControls.Add(previous);
            }
        }
Exemple #2
0
        public void Finish()
        {
            var temp = PreviousRemovedControls;

            PreviousRemovedControls = CurrentRemovedControls;
            CurrentRemovedControls  = temp;
            CurrentRemovedControls.Clear();

            // Trim off any excess controls
            for (int i = Children.Count - 1; i >= NextIndex; i--)
            {
                PreviousRemovedControls.Add(Children[i]);
                Children.RemoveAt(i);
            }

            WaitingForFocusBeneficiary = null;
        }