1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
| using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace testHeritagePanel
{
[ToolboxBitmap(typeof(testHeritagePanel), "CollapsiblePanel.bmp")]
public partial class testHeritagePanel : Panel
{
private Button ButtonHeader;
private ImageList m_ImageList = null;
[Category("A moi"), Browsable(true), Description("ImageList qui doit contenir les 2 images (plus et -) utilisées pour le control")]
public ImageList ImageList
{
get
{
return m_ImageList;
}
set
{
m_ImageList = value;
Refresh();
}
}
private Image m_HeaderImage = null;
[Category("A moi"), Browsable(true), Description("Image qui représente le contenu du Panel personnalisé")]
public Image HeaderImage
{
get { return m_HeaderImage; }
set
{
m_HeaderImage = value;
Refresh();
}
}
private Color m_HeaderTextColor = SystemColors.ControlText;
[Category("A moi"), Browsable(true), Description("Couleur du text du bouton")]
public Color HeaderTextColor
{
get { return m_HeaderTextColor; }
set
{
m_HeaderTextColor = value;
Refresh();
}
}
private String m_HeaderText= String.Empty;
[Category("A moi"), Browsable(true), Description("Text du bouton")]
public String HeaderText
{
get { return m_HeaderText; }
set
{
m_HeaderText = value;
Refresh();
}
}
private bool m_Collapsed = true;
[Category("A moi"), Browsable(true), Description("Indique si le panel est collapsé ou étendu.")]
public bool Collapse
{
get { return m_Collapsed; }
set
{
m_Collapsed = value;
Refresh();
}
}
public testHeritagePanel()
{
InitializeComponent();
ButtonHeader = new Button();
ButtonHeader.Dock = DockStyle.Top;
ButtonHeader.FlatStyle = FlatStyle.Flat;
ButtonHeader.FlatAppearance.MouseOverBackColor = Color.White;
ButtonHeader.FlatAppearance.BorderSize = 0;
ButtonHeader.BackgroundImageLayout = ImageLayout.None;
ButtonHeader.ImageAlign = ContentAlignment.MiddleRight;
ButtonHeader.TextImageRelation = TextImageRelation.Overlay;
ButtonHeader.TabStop = false;
ButtonHeader.Click += new System.EventHandler(this.ButtonHeader_Click);
Controls.Add(ButtonHeader);
if (string.IsNullOrEmpty(m_HeaderText)) m_HeaderText = base.Name.ToString() ;
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
ButtonHeader.ForeColor = m_HeaderTextColor;
ButtonHeader.Text = m_HeaderText;
ButtonHeader.ImageList = m_ImageList;
ButtonHeader.BackgroundImage = m_HeaderImage;
if(m_HeaderImage != null)
ButtonHeader.Height = ButtonHeader.BackgroundImage.Height ;
else
ButtonHeader.Height = 32;
if (m_ImageList != null)
{
if (m_Collapsed)
ButtonHeader.ImageIndex = 0;
else
ButtonHeader.ImageIndex = 1;
}
else
ButtonHeader.Image = null;
if (m_Collapsed)
{
base.Height = ButtonHeader.Height;
}
else
{
base.Height = 500;
}
}
void ButtonHeader_Click(object sender, System.EventArgs e)
{
m_Collapsed = !m_Collapsed;
Refresh();
}
}
} |
Partager