System.Windows.Forms.Accordion.Refresh C# (CSharp) Method

Refresh() public method

public Refresh ( ) : void
return void
        public override void Refresh()
        {
            base.Refresh();

            int currentY = 0;
            for (int i = 0; i < Controls.Count; i++)
            {
                if (Controls[i] is AccordionButton)
                {
                    Controls[i].Location = new Point(Controls[i].Location.X, currentY);
                    currentY += Controls[i].Height + ItemSpace;
                }
                else
                {
                    // Content.
                    var buttonCollapsed = ((AccordionButton)Controls[i - 1]).Collapsed;
                    if (buttonCollapsed)
                    {
                        Controls[i].Visible = false;
                    }
                    else
                    {
                        Controls[i].Visible = true;
                        Controls[i].Location = new Point(Controls[i].Location.X, currentY);
                        currentY += Controls[i].Height + ItemSpace;
                    }
                }
            }

            Height = currentY;
        }

Usage Example

Example #1
0
        protected override void OnMouseClick(MouseEventArgs e)
        {
            base.OnMouseClick(e);

            Collapsed = !Collapsed;
            _owner.Refresh();
        }