void m_button_Click(object sender, EventArgs e)
{
m_expanded = !m_expanded;
m_control.Visible = m_expanded;
Height = m_button.Height + (m_control.Visible ? m_controlsExpandedHeight : 0);
if (m_control.Visible && Expanded != null)
Expanded(this, EventArgs.Empty);
else if (!m_control.Visible && Collapsed != null)
Collapsed(this, EventArgs.Empty);
// Force the expand/collase glyph to be repainted.
Rectangle rc = m_button.ClientRectangle;
rc.X = rc.Right - rc.Height + 2;
rc.Width = rc.Height + 2;
m_button.Invalidate(rc);
}