XPGroupBox.cs

Description du code

XPGroupBox.cs est un fichier du projet BrolDev.
Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/broldev/src/.

Projet BrolDev : Librairie de composants réutilisables pour les applications BrolDev en CSharp.

Code source ou contenu du fichier

  1. using System;
  2. using System.ComponentModel;
  3. using System.Drawing;
  4. using System.Drawing.Drawing2D;
  5. using System.Windows.Forms;
  6.  
  7. namespace be.gaudry.view.controls
  8. {
  9. /// <summary>
  10. /// XP styled GroupBox (expandable)
  11. /// More info :
  12. /// http://www.codeproject.com/cs/media/ExtendedGraphics.asp
  13. /// </summary>
  14. public class XPGroupBox : GroupBox
  15. {
  16. #region declarations
  17. private System.ComponentModel.IContainer components;
  18.  
  19. public event EventHandler StateChanged;
  20. /// <summary>
  21. /// Collapsed (1) or expanded (0)
  22. /// </summary>
  23. public enum GroupBoxState : int
  24. {
  25. /// <summary>
  26. /// Full view
  27. /// </summary>
  28. Expanded = 0,
  29. /// <summary>
  30. /// Only the title is displayed
  31. /// </summary>
  32. Collapsed = 1
  33. }
  34. private int headerHeight;
  35. private Rectangle headerRect;
  36. private int origHeight;
  37. private GroupBoxState state = GroupBoxState.Expanded;
  38. private System.Windows.Forms.ImageList imageList1;
  39. private Color backColor = System.Drawing.SystemColors.ControlLightLight;
  40. private Color headerForeColor = System.Drawing.SystemColors.ControlText;
  41. private Font headerFont;
  42. private Color borderColor = System.Drawing.SystemColors.ControlDarkDark;
  43. private Color headerBackColor = System.Drawing.SystemColors.Control;
  44. private Icon icon = null;
  45. private Cursor cursor;
  46. private bool canCollapse = true;
  47. private bool displayCollapseBtn = true;
  48. #endregion
  49.  
  50. #region properties
  51. /// <summary>
  52. /// Get or define if the XPGroupBox can be collapsed or not
  53. /// </summary>
  54. [
  55. Description("Get or define if the XPGroupBox can be collapsed or not"),
  56. Category("Behavior")
  57. ]
  58. public bool CanCollapse {
  59. get {return canCollapse;}
  60. set {canCollapse = value;
  61. this.Invalidate(this.headerRect, false);
  62. }
  63. }/// <summary>
  64. /// Display a button to collapse or expand the XPGroupBox
  65. /// </summary>
  66. [
  67. Description("Display a button to collapse or expand the XPGroupBox"),
  68. Category("Behavior"),
  69. DefaultValue(typeof(bool), "true")
  70. ]
  71. public bool DisplayCollapseButton
  72. {
  73. get { return displayCollapseBtn; }
  74. set
  75. {
  76. displayCollapseBtn = value;
  77. this.Invalidate(this.headerRect, false);
  78. }
  79. }
  80. /// <summary>
  81. /// Get or define the XPGroupBoxState (Expanded or not)
  82. /// </summary>
  83. [
  84. Description("Get or define the XPGroupBoxState (Expanded or not)"),
  85. Category("Appearance"),
  86. DefaultValue(typeof(bool), "false")
  87. ]
  88. public bool Expanded
  89. {
  90. get { return state.Equals(XPGroupBox.GroupBoxState.Expanded); }
  91. set
  92. {
  93. state = (value) ? GroupBoxState.Expanded : GroupBoxState.Collapsed;
  94. }
  95. }
  96. /*
  97. /// <summary>
  98. /// Obtient ou défini la couleur de fond du groupe
  99. /// </summary>
  100. [Description("Obtient ou défini la couleur du fond du groupe"),
  101. Category("Appearance"), DefaultValue(typeof(Color),"239, 243, 255")]
  102. public Color BackgroundColor {
  103. get {return backColor;}
  104. set {backColor = value;
  105. this.Invalidate(true);
  106. }
  107. }
  108. /// <summary>
  109. /// Obtient ou défini la couleur du texte de l'entête
  110. /// </summary>
  111. [Description("Obtient ou défini la couleur du texte de l'entête"),
  112. Category("Appearance"), DefaultValue(typeof(Color),"48, 72, 110")]
  113. public Color HeaderForeColor {
  114. get {return headerForeColor;}
  115. set {headerForeColor = value;
  116. this.Invalidate(this.headerRect, false);
  117. }
  118. }
  119.  
  120. /// <summary>
  121. /// Otient ou défini la police de l'entête
  122. /// </summary>
  123. [Description("Obtient ou défini la police du texte de l'entête"),
  124. Category("Appearance"), DefaultValue(typeof(Font),"Trebuchet MS; 9,75pt; style=Bold")]
  125. public Font HeaderFont {
  126. get {return headerFont;}
  127. set {
  128. if (value != null) {
  129. headerFont = value;
  130. } else {
  131. headerFont = base.Font;
  132. }
  133. this.ComputeHeaderHeight();
  134. this.Invalidate();
  135. }
  136. }
  137.   */
  138. [Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
  139. public new FlatStyle FlatStyle {
  140. get {return FlatStyle.Standard;}
  141. }
  142.  
  143. [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
  144. public new Image BackgroundImage {
  145. get {return null;}
  146. }
  147. /*
  148. /// <summary>
  149. /// Obtient ou défini la couleur de la bordure du contrôle
  150. /// </summary>
  151. [Description("Obtient ou défini la couleur de la bordure du contrôle"),
  152. Category("Appearance"), DefaultValue(typeof(Color),"183, 202, 234")]
  153. public Color BorderColor {
  154. get {return borderColor;}
  155. set {borderColor = value;
  156. this.Invalidate();
  157. }
  158. }
  159. /// <summary>
  160. /// Obtient ou défini la couleur de fond de l'entête
  161. /// </summary>
  162. [Description("Obtient ou défini la couleur du fond de l'entête"),
  163. Category("Appearance"), DefaultValue(typeof(Color),"195, 214, 255")]
  164. public Color HeaderBackColor {
  165. get {return headerBackColor;}
  166. set {headerBackColor = value;
  167. this.Invalidate(this.headerRect, false);
  168.  
  169. }
  170. }
  171.   */
  172. /// <summary>
  173. /// Get or define the icon witch be displayed in the title
  174. /// </summary>
  175. [
  176. Description("Get or define the icon witch be displayed in the title"),
  177. Category("Appearance")
  178. ]
  179. public Icon Icon {
  180. get {return icon;}
  181. set {
  182. icon = value;
  183. this.Invalidate(this.headerRect, false);
  184. }
  185. }
  186.  
  187. #endregion
  188.  
  189. #region constructor
  190. public XPGroupBox()
  191. {
  192. this.SetStyle(ControlStyles.UserPaint |
  193. ControlStyles.DoubleBuffer |
  194. ControlStyles.SupportsTransparentBackColor |
  195. ControlStyles.AllPaintingInWmPaint, true);
  196. InitializeComponent();
  197. ComputeHeaderHeight();
  198.  
  199. this.headerFont = base.Font;
  200. // this.backColor = base.BackColor;
  201. cursor = base.Cursor;
  202. }
  203. #endregion
  204.  
  205. #region public methods
  206. /// <summary>
  207. /// Expand or collapse the XPGroupBox
  208. /// </summary>
  209. /// <param name="expand">(bool) true to expand</param>
  210. public void expand(bool expand)
  211. {
  212. this.state = (expand) ? GroupBoxState.Expanded : GroupBoxState.Collapsed;
  213. ChangeState();
  214. }
  215. #endregion
  216.  
  217. #region events and private methods
  218. protected override void OnMouseMove(MouseEventArgs e)
  219. {
  220. base.OnMouseMove(e);
  221. if (canCollapse)
  222. {
  223. if (headerRect.Contains(this.PointToClient(MousePosition)))
  224. {
  225. cursor = this.Cursor;
  226. this.Cursor = Cursors.Hand;
  227. }
  228. else
  229. {
  230. this.Cursor = Cursors.Default;
  231. }
  232. }
  233. }
  234.  
  235. protected override void OnMouseUp(MouseEventArgs e)
  236. {
  237. base.OnMouseUp(e);
  238.  
  239. if (this.canCollapse && headerRect.Contains(this.PointToClient(MousePosition)))
  240. {
  241. this.state = (this.state == GroupBoxState.Collapsed ? GroupBoxState.Expanded : GroupBoxState.Collapsed);
  242. ChangeState();
  243. }
  244. }
  245.  
  246. protected override void OnPaintBackground(PaintEventArgs pevent)
  247. {
  248. // base.OnPaintBackground (pevent);
  249. pevent.Graphics.FillRectangle(new SolidBrush(this.BackColor),
  250. new Rectangle(0, 0, this.Width, this.Height));
  251. }
  252.  
  253. protected void ChangeState()
  254. {
  255. if (this.state != GroupBoxState.Expanded)
  256. {
  257. this.origHeight = this.Height;
  258. this.Height = this.headerHeight + 1; // + 5;
  259. }
  260. else
  261. {
  262. this.Height = this.origHeight;
  263. }
  264. if (this.StateChanged != null)
  265. {
  266. this.StateChanged(this, EventArgs.Empty);
  267. }
  268. }
  269.  
  270.  
  271. // public GroupBoxState State {
  272. // get {return state;}
  273. // set {state = value;
  274. // ChangeState();
  275. // }
  276. // }
  277.  
  278. public override Rectangle DisplayRectangle
  279. {
  280. get
  281. {
  282. Rectangle rect = new Rectangle(1, headerHeight + 1, this.Width - 2, this.Height - headerHeight - 8);
  283. return rect;
  284. }
  285. }
  286.  
  287.  
  288. protected override void OnPaint(PaintEventArgs e)
  289. {
  290. headerHeight = ComputeHeaderHeight();
  291.  
  292. // // We erase the control
  293. // e.Graphics.FillRectangle(new SolidBrush(Color.Transparent), 0,0,this.Width,this.Height);
  294.  
  295. GraphicsPath RREntete = this.GetRoundedRect(this.headerRect, 4F);
  296. GraphicsPath RRBackground = this.GetRoundedRect(new Rectangle(0, 0, this.Width - 1, this.Height - 5), 4F);
  297.  
  298. // fill the background if state == Expanded
  299. if (this.state == GroupBoxState.Expanded)
  300. {
  301. e.Graphics.FillPath(new SolidBrush(this.backColor), RRBackground);
  302. e.Graphics.DrawPath(new Pen(this.borderColor), RRBackground);
  303. }
  304.  
  305.  
  306. // paint the header of the control
  307. Brush b = new LinearGradientBrush(
  308. this.headerRect, this.headerBackColor, this.backColor, LinearGradientMode.Horizontal);
  309. e.Graphics.FillPath(b, RREntete);
  310. e.Graphics.DrawPath(new Pen(this.borderColor), RREntete);
  311.  
  312. // add icon if exists
  313. int left = 5;
  314. if (this.icon != null)
  315. {
  316. e.Graphics.DrawIcon(
  317. this.icon,
  318. new Rectangle(left, 2, this.headerHeight - 2, this.headerHeight - 2));
  319. left += this.headerHeight + 5;
  320. }
  321.  
  322. // add header text
  323. StringFormat sf = StringFormat.GenericTypographic;
  324. sf.LineAlignment = StringAlignment.Center;
  325. e.Graphics.DrawString(this.Text, headerFont, new SolidBrush(this.headerForeColor),
  326. new Rectangle(left, 0, this.Width - left, this.headerHeight),
  327. sf);
  328. sf.Dispose();
  329.  
  330. if (this.canCollapse)
  331. {
  332. // draw image according to the XPGroupBox state (expanded or not)
  333. e.Graphics.DrawImage(this.imageList1.Images[(int)state], new Point(this.Width - 24, (this.headerHeight - 16) / 2));
  334. // draw a vertical line to separate text from the header and the state image
  335. e.Graphics.DrawLine(new Pen(this.borderColor), new Point(this.Width - 32, (this.headerHeight - 16) / 2),
  336. new Point(this.Width - 32, 16 + (this.headerHeight - 16) / 2));
  337. e.Graphics.DrawLine(SystemPens.ControlLight, new Point(this.Width - 31, 1 + (this.headerHeight - 16) / 2),
  338. new Point(this.Width - 31, 17 + (this.headerHeight - 16) / 2));
  339. }
  340. }
  341.  
  342. /// <summary>
  343. /// Calculate the ideal size of the header according to the used font.
  344. /// </summary>
  345. /// <returns>ideal size in pixels</returns>
  346. private int ComputeHeaderHeight()
  347. {
  348.  
  349. Font font = this.headerFont;
  350. if (font == null) font = base.Font;
  351.  
  352. int height = (int)(this.CreateGraphics().MeasureString("I", font).Height * 1.5F);
  353. if (height != this.headerHeight)
  354. {
  355. this.headerHeight = height;
  356. this.RecreateHandle();
  357. }
  358. headerRect = new Rectangle(0, 0, this.Width - 1, this.headerHeight);
  359. return this.headerHeight;
  360. }
  361.  
  362.  
  363.  
  364. /// <summary>
  365. /// Clean non used ressources
  366. /// </summary>
  367. protected override void Dispose(bool disposing)
  368. {
  369. if (disposing)
  370. {
  371. if (components != null)
  372. {
  373. components.Dispose();
  374. }
  375. }
  376. base.Dispose(disposing);
  377. }
  378. #endregion
  379.  
  380. #region Windows Form Designer generated code
  381.  
  382. /// <summary>
  383. /// Required method for Designer support - do not modify
  384. /// the contents of this method with the code editor.
  385. /// </summary>
  386. private void InitializeComponent()
  387. {
  388. this.components = new System.ComponentModel.Container();
  389. System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(XPGroupBox));
  390. this.imageList1 = new System.Windows.Forms.ImageList(this.components);
  391. //
  392. // imageList1
  393. //
  394. this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
  395. this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
  396. this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
  397. this.imageList1.TransparentColor = System.Drawing.Color.Magenta;
  398.  
  399. }
  400. #endregion
  401.  
  402. #region Code from CodeProject : http://www.codeproject.com/cs/media/ExtendedGraphics.asp
  403. private GraphicsPath GetRoundedRect(RectangleF baseRect,
  404. float radius) {
  405. // if corner radius is less than or equal to zero,
  406. // return the original rectangle
  407. if( radius<=0.0F ) {
  408. GraphicsPath mPath = new GraphicsPath();
  409. mPath.AddRectangle(baseRect);
  410. mPath.CloseFigure();
  411. return mPath;
  412. }
  413.  
  414. // if the corner radius is greater than or equal to
  415. // half the width, or height (whichever is shorter)
  416. // then return a capsule instead of a lozenge
  417. if( radius>=(Math.Min(baseRect.Width, baseRect.Height))/2.0)
  418. return GetCapsule( baseRect );
  419.  
  420. // create the arc for the rectangle sides and declare
  421. // a graphics path object for the drawing
  422. float diameter = radius * 2.0F;
  423. SizeF sizeF = new SizeF( diameter, diameter );
  424. RectangleF arc = new RectangleF( baseRect.Location, sizeF );
  425. GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
  426.  
  427. // top left arc
  428. path.AddArc( arc, 180, 90 );
  429.  
  430. // top right arc
  431. arc.X = baseRect.Right-diameter;
  432. path.AddArc( arc, 270, 90 );
  433.  
  434. // bottom right arc
  435. arc.Y = baseRect.Bottom-diameter;
  436. path.AddArc( arc, 0, 90 );
  437.  
  438. // bottom left arc
  439. arc.X = baseRect.Left;
  440. path.AddArc( arc, 90, 90 );
  441.  
  442. path.CloseFigure();
  443. return path;
  444. }
  445.  
  446. private GraphicsPath GetCapsule( RectangleF baseRect ) {
  447. float diameter;
  448. RectangleF arc;
  449. GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
  450. try {
  451. if( baseRect.Width>baseRect.Height ) {
  452. // return horizontal capsule
  453. diameter = baseRect.Height;
  454. SizeF sizeF = new SizeF(diameter, diameter);
  455. arc = new RectangleF( baseRect.Location, sizeF );
  456. path.AddArc( arc, 90, 180);
  457. arc.X = baseRect.Right-diameter;
  458. path.AddArc( arc, 270, 180);
  459. }
  460. else if( baseRect.Width < baseRect.Height ) {
  461. // return vertical capsule
  462. diameter = baseRect.Width;
  463. SizeF sizeF = new SizeF(diameter, diameter);
  464. arc = new RectangleF( baseRect.Location, sizeF );
  465. path.AddArc( arc, 180, 180 );
  466. arc.Y = baseRect.Bottom-diameter;
  467. path.AddArc( arc, 0, 180 );
  468. }
  469. else {
  470. // return circle
  471. path.AddEllipse( baseRect );
  472. }
  473. }
  474. catch(Exception ex) {
  475. path.AddEllipse( baseRect );
  476. System.Console.WriteLine(ex.Message);
  477. }
  478. finally {
  479. path.CloseFigure();
  480. }
  481. return path;
  482. }
  483. #endregion
  484. }
  485. }

Structure et Fichiers du projet

Afficher/masquer...


Répertoires contenus dans /var/www/bin/sniplets/bibliobrol/broldev/src/view/controls/ 
IcôneNomTailleModification
Pas de sous-répertoires.
IcôneNomTailleModification
| _ Répertoire parent0 octets1732240226 22/11/2024 02:50:26
Fichiers contenus dans /var/www/bin/sniplets/bibliobrol/broldev/src/view/controls/ 
IcôneNomTailleModificationAction
IcôneNomTailleModificationAction
Afficher le fichier .cs|.csToolBarHomeControl.Designer.cs7.41 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csWizardUserControl.Designer.cs6.79 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csHeaderPanel.Designer.cs1.19 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csDGVLayoutOptionsControl.cs7.55 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csXPGroupBox.cs15.83 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csWizardXpUserControl.Designer.cs7.85 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csToolBarHomeControl.cs2.32 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csVersionControl.Designer.cs4.09 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csWizardUserControl.cs2.01 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .resx|.resxWizardXpUserControl.resx5.68 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csBrolBoxUserControl.Designer.cs5.92 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .resx|.resxChartControl.resx6.58 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csHeaderPanel.cs35.93 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csIWizardUC.cs2.35 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .resx|.resxAboutUserControl.resx5.68 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .cs|.csTextBoxDragDrop.cs8.59 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csSystemInfoControl.cs5.46 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .resx|.resxXPGroupBox.resx17.7 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csHeaderPanelNativeMethods.cs21.09 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csToolBarManagerControl.cs6.99 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csTextBoxDragDrop.Designer.cs1.11 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .resx|.resxSystemInfoControl.resx6.22 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csSystemInfoControl.Designer.cs4.79 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .resx|.resxHeaderPanel.resx5.85 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csScrollablePictureBoxUserControl.cs5.55 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csBrolBoxUserControl.cs4.7 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .resx|.resxDGVLayoutOptionsControl.resx5.68 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .resx|.resxWizardUserControl.resx5.68 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csUpdateControl.cs7.55 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csIconList.cs2.68 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csVersionControl.cs463 octets31/10/2018 18:33:12-refusé-
Afficher le fichier .resx|.resxBrolBoxUserControl.resx5.68 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .cs|.csAboutUserControl.cs6.75 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .resx|.resxToolBarManagerControl.resx5.88 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csToolBarManagerControl.Designer.cs10.66 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csIToolBarControl.cs1.07 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csWizardXpUserControl.cs8.11 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csImageCombo.cs15.49 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csAboutUserControl.Designer.cs12.31 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .resx|.resxScrollablePictureBoxUserControl.resx5.68 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csScrollablePictureBoxUserControl.Designer.cs5.64 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .resx|.resxVersionControl.resx5.68 Ko31/10/2018 18:33:13-refusé-
Afficher le fichier .cs|.csChartControl.Designer.cs18.45 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .cs|.csUpdateControl.Designer.cs3.92 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .resx|.resxUpdateControl.resx5.68 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csChartControl.cs15.11 Ko31/10/2018 18:33:10-refusé-
Afficher le fichier .cs|.csDGVLayoutOptionsControl.Designer.cs17.39 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .cs|.csToolStrip.cs1.06 Ko31/10/2018 18:33:12-refusé-
Afficher le fichier .cs|.csIconList.Designer.cs1.1 Ko31/10/2018 18:33:11-refusé-
Afficher le fichier .resx|.resxToolBarHomeControl.resx48.51 Ko31/10/2018 18:33:12-refusé-

Utilisation de l'explorateur de code

  • Navigation :
    • Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
    • Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
    • La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
    • Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
  • Affichage :
    • Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
  • Actions :
    • Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.

Version en cache

22/11/2024 02:50:26 Cette version de la page est en cache (à la date du 22/11/2024 02:50:26) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-broldev-source-rf-view/controls/XPGroupBox.cs.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.