Exontrol.ExplorerBar - Information, Features

ExplorerBar

The Exontrol's ExplorerBar control, an accurate reproduction of the Microsoft Windows XP Explorer Bar, provides an intuitive user-interface when large amounts of information need to be presented. The ExplorerBar component lets the user changes its visual appearance using skins, each one providing an additional visual experience that enhances viewing pleasure. Skins are relatively easy to build and put on any part of the control.

Features include:

  • COM/ActiveX, .NET Assembly or /WPF Component ( as separate products )
  • Skinnable Interface support ( ability to apply a skin to the any background part )
  • Unlimited options to show any colors, HTML, icons, images, pictures, frames, patterns on any group or item
  • WYSWYG Template/Layout Editor support.
  • Shortcut bar support ( Ability to group the groups of items, in the shortcut bar ).
  • Keyboard support
  • Multi-Lines HTML ToolTip support
  • Any item supports built-in HTML tags.
  • New text decorations support for HTML captions, like outlined characters, shadow
  • Custom size pictures support.
  • Nice animation when the group is expanded
  • Unlimited color and font attributes options for items or groups ( tabs )
  • Ability to display a picture on the groups background
  • Multiple type of alignments for items, groups
  • Small or large icons support
  • Mouse wheel support
  • Gradient colors support

® ExPlorerBar is a trademark of Exontrol. All Rights Reserved.


Exontrol - Support

How to get support?

To keep your business applications running, you need support you can count on.

Here are few hints what to do when you're stuck on your programming:

  • Check out the samples - they are here to provide some quick info on how things should be done
  • Check out the how-to questions using the eXHelper tool
  • Check out the help - includes documentation for each method, property or event
  • Check out if you have the latest version, and if you don't have it send an update request here.
  • Submit your problem(question) here.

Don't forget that you can contact our development team if you have ideas or requests for new components, by sending us an e-mail at support@exontrol.com ( please include the name of the product in the subject, ex: exgrid ) . We're sure our team of developers will try to find a way to make you happy - and us too, since we helped.

Regards,
Exontrol Development Team

https://www.exontrol.com


constants AlignmentEnum
Specifies the object's alignment types. Use the Alignment property to align the item. Use the Alignment property to align the caption of the group.

Name | Value | Description
exLeft | 0 | The object is left aligned.
exCenter | 1 | The object is center aligned.
exRight | 2 | The object is right aligned.
exMiddle | 4 | The object's icon and object's caption are center aligned. The object's icon is displayed on top, and the object's caption is bottom displayed.


constants AppearanceEnum
Specifies the control's border, or group's appearance. Use the Appearance property to specify the control's appearance.

Name | Value | Description
exNone | 0 | No border
exSingle | 1 | Single
exRaised | 2 | Raised
exPop | 3 | Pop
exDrop | 4 | Drop
exShadow | 5 | Shadow
exInset | 6 | Inset
exRound | 7 | Round


constants BackgroundExtPropertyEnum
The BackgroundExtPropertyEnum type specifies the UI properties of the part of the EBN you can access/change at runtime. The BackgroundExt property specifies the EBN String format to be displayed on the event's background. The BackgroundExtValue property access the value of the giving property for specified part of the EBN. The BackgroundExtPropertyEnum type supports the following values:

Name Value Description
exToStringExt 0 Specifies the part's ToString representation. The BackgroundExt property specifies the EBN String format to be displayed on the object's background. The Exontrol's eXButton WYSWYG Builder helps you to generate or view the EBN String Format, in the To String field.

Sample:

"client(right[18](bottom[18,pattern=6,frame=0,framethick]),bottom[48,align=0x11]),left[18](bottom[18,pattern=6,frame=0,framethick])"

generates the following layout:

where it is applied to an object it looks as follows:

(String expression, read-only).

exBackColorExt 1 Indicates the background color / EBN color to be shown on the part of the object. Sample: 255 indicates red, RGB(0,255,0) green, or 0x1000000.

(Color/Numeric expression, The last 7 bits in the high significant byte of the color indicate the identifier of the skin being used )

exClientExt 2 Specifies the position/size of the object, depending on the object's anchor. The syntax of the exClientExt is related to the exAnchorExt value. For instance, if the object is anchored to the left side of the parent ( exAnchorExt = 1 ), the exClientExt specifies just the width of the part in pixels/percents, not including the position. In case, the exAnchorExt is client, the exClientExt has no effect.

Based on the exAnchorExt value the exClientExt is:

  • 0 (none, the object is not anchored to any side), the format of the exClientExt is "left,top,width,height" ( as string ) where (left,top) margin indicates the position where the part starts, and the (width,height) pair specifies its size. The left, top, width or height could be any expression (+,-,/ or * ) that can include numbers associated with pixels or percents. For instance: "25%,25%,50%,50%" indicates the middle of the parent object, and so when the parent is resized the client is resized accordingly. The "50%-8,50%-8,16,16" value specifies that the size of the object is always 16x16 pixels and positioned on the center of the parent object.
  • 1 (left, the object is anchored to left side of the parent), the format of the exClientExt is width ( string or numeric ) where width indicates the width of the object in pixels, percents or a combination of them using +,-,/ or * operators. For instance: "50%" indicates the half of the parent object, and so when the parent is resized the client is resized accordingly. The 16 value specifies that the size of the object is always 16 pixels.
  • 2 (right, the object is anchored to right side of the parent object), the format of the exClientExt is width ( string or numeric ) where width indicates the width of the object in pixels, percents or a combination of them using +,-,/ or * operators. For instance: "50%" indicates the half of the parent object, and so when the parent is resized the client is resized accordingly. The 16 value specifies that the size of the object is always 16 pixels.
  • 3 (client, the object takes the full available area of the parent), the exClientExt has no effect.
  • 4 (top, the object is anchored to the top side of the parent object), the format of the exClientExt is height ( string or numeric ) where height indicates the height of the object in pixels, percents or a combination of them using +,-,/ or * operators. For instance: "50%" indicates the half of the parent object, and so when the parent is resized the client is resized accordingly. The 16 value specifies that the size of the object is always 16 pixels.
  • 5 (bottom, the object is anchored to bottom side of the parent object), the format of the exClientExt is height ( string or numeric ) where height indicates the height of the object in pixels, percents or a combination of them using +,-,/ or * operators. For instance: "50%" indicates the half of the parent object, and so when the parent is resized the client is resized accordingly. The 16 value specifies that the size of the object is always 16 pixels.

Sample: 50% indicates half of the parent, 25 indicates 25 pixels, or 50%-8 indicates 8-pixels left from the center of the parent.

(String/Numeric expression)
exAnchorExt 3 Specifies the object's alignment relative to its parent.

The valid values for exAnchorExt are:

  • 0 (none), the object is not anchored to any side,
  • 1 (left), the object is anchored to left side of the parent,
  • 2 (right), the object is anchored to right side of the parent object,
  • 3 (client), the object takes the full available area of the parent,
  • 4 (top), the object is anchored to the top side of the parent object,
  • 5 (bottom), the object is anchored to bottom side of the parent object

(Numeric expression)

exTextExt 4 Specifies the HTML text to be displayed on the object.

The exTextExt supports the following built-in HTML tags:

  • <b> ... </b> displays the text in bold
  • <i> ... </i> displays the text in italics
  • <u> ... </u> underlines the text
  • <s> ... </s> Strike-through text
  • <a id;options> ... </a> displays an anchor element that can be clicked. An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link.The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The control fires the AnchorClick(AnchorID, Options) event when the user clicks the anchor element. The FormatAnchor property customizes the visual effect for anchor elements.
  • <font face;size> ... </font> displays portions of text with a different font and/or different size. For instance, the <font Tahoma;12>bit</font> draws the bit text using the Tahoma font, on size 12 pt. If the name of the font is missing, and instead size is present, the current font is used with a different size. For instance, <font ;12>bit</font> displays the bit text using the current font, but with a different size.
  • <fgcolor rrggbb> ... </fgcolor> or <fgcolor=rrggbb> ... </fgcolor> displays text with a specified foreground color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <bgcolor rrggbb> ... </bgcolor> or <bgcolor=rrggbb> ... </bgcolor> displays text with a specified background color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <solidline rrggbb> ... </solidline> or <solidline=rrggbb> ... </solidline> draws a solid-line on the bottom side of the current text-line, of specified RGB color. The <solidline> ... </solidline> draws a black solid-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <dotline rrggbb> ... </dotline> or <dotline=rrggbb> ... </dotline> draws a dot-line on the bottom side of the current text-line, of specified RGB color. The <dotline> ... </dotline> draws a black dot-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <upline> ... </upline> draws the line on the top side of the current text-line (requires <solidline> or <dotline>).
  • <r> right aligns the text
  • <c> centers the text
  • <br> forces a line-break
  • <img>number[:width]</img> inserts an icon inside the text. The number indicates the index of the icon being inserted. Use the Images method to assign a list of icons to your chart. The last 7 bits in the high significant byte of the number expression indicates the identifier of the skin being used to paint the object. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the part. The width is optional and indicates the width of the icon being inserted. Using the width option you can overwrite multiple icons getting a nice effect. By default, if the width field is missing, the width is 18 pixels.
  • <img>key[:width]</img> inserts a custom size picture into the text being previously loaded using the HTMLPicture property. The Key parameter indicates the key of the picture being displayed. The Width parameter indicates a custom size, if you require to stretch the picture, else the original size of the picture is used.
  • & glyph characters as &amp; ( & ), &lt; ( < ), &gt; ( > ), &qout; ( " ) and &#number; ( the character with specified code ), For instance, the &#8364; displays the EUR character. The & ampersand is only recognized as markup when it is followed by a known letter or a #character and a digit. For instance if you want to display <b>bold</b> in HTML caption you can use &lt;b&gt;bold&lt;/b&gt;
  • <off offset> ... </off> defines the vertical offset to display the text/element. The offset parameter defines the offset to display the element. This tag is inheritable, so the offset is keep while the associated </off> tag is found. You can use the <off offset> HTML tag in combination with the <font face;size> to define a smaller or a larger font to be displayed. For instance: Text with <font ;7><off 6>subscript displays the text such as: Text with subscript The Text with <font ;7><off -6>superscript displays the text such as: Text with subscript
  • <gra rrggbb;mode;blend> ... </gra> defines a gradient text. The text color or <fgcolor> defines the starting gradient color, while the rr/gg/bb represents the red/green/blue values of the ending color, 808080 if missing as gray. The mode is a value between 0 and 4, 1 if missing, and blend could be 0 or 1, 0 if missing. The <font> HTML tag can be used to define the height of the font. Any of the rrggbb, mode or blend field may not be specified. The <gra> with no fields, shows a vertical gradient color from the current text color to gray (808080). For instance the <font ;18><gra FFFFFF;1;1>gradient-center</gra></font> generates the following picture:
  • <out rrggbb;width> ... </out> shows the text with outlined characters, where rr/gg/bb represents the red/green/blue values of the outline color, 808080 if missing as gray, width indicates the size of the outline, 1 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><out 000000><fgcolor=FFFFFF>outlined</fgcolor></out></font> generates the following picture:
  • <sha rrggbb;width;offset> ... </sha> define a text with a shadow, where rr/gg/bb represents the red/green/blue values of the shadow color, 808080 if missing as gray, width indicates the size of shadow, 4 if missing, and offset indicates the offset from the origin to display the text's shadow, 2 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><sha>shadow</sha></font> generates the following picture:

    or <font ;31><sha 404040;5;0><fgcolor=FFFFFF>outline anti-aliasing</fgcolor></sha></font> gets:

(String expression)
exTextExtWordWrap 5 Specifies that the object is wrapping the text. The exTextExt value specifies the HTML text to be displayed on the part of the EBN object. This property has effect only if there is a text assigned to the part using the exTextExt flag.

(Boolean expression)
exTextExtAlignment 6 Indicates the alignment of the text on the object. The exTextExt value specifies the HTML text to be displayed on the part of the EBN object. This property has effect only if there is a text assigned to the part using the exTextExt flag.

The valid values for exTextExtAlignment are:

  • 0, ( hexa 0x00, Top-Left ), Text is vertically aligned at the top, and horizontally aligned on the left.
  • 1, ( hexa 0x01, Top-Center ), Text is vertically aligned at the top, and horizontally aligned at the center.
  • 2, ( hexa 0x02, Top-Right ), Text is vertically aligned at the top, and horizontally aligned on the right.
  • 16, ( hexa 0x10, Middle-Left ), Text is vertically aligned in the middle, and horizontally aligned on the left.
  • 17, ( hexa 0x11, Middle-Center ), Text is vertically aligned in the middle, and horizontally aligned at the center.
  • 18, ( hexa 0x12, Middle-Right ), Text is vertically aligned in the middle, and horizontally aligned on the right.
  • 32, ( hexa 0x20, Bottom-Left ), Text is vertically aligned at the bottom, and horizontally aligned on the left.
  • 33, ( hexa 0x21, Bottom-Center ), Text is vertically aligned at the bottom, and horizontally aligned at the center.
  • 34, ( hexa 0x22, Bottom-Right ), Text is vertically aligned at the bottom, and horizontally aligned on the right.

(Numeric expression)
exPatternExt 7 Indicates the pattern to be shown on the object. The exPatternColorExt specifies the color to show the pattern.

The valid values for exPatternExt are:

  • 0, ( hexa 0x000, Empty ), The pattern is not visible
  • 1, ( hexa 0x001, Solid ),
  • 2, ( hexa 0x002, Dot ),
  • 3, ( hexa 0x003, Shadow ),
  • 4, ( hexa 0x004, NDot ),
  • 5, ( hexa 0x005, FDiagonal ),
  • 6, ( hexa 0x006, BDiagonal ),
  • 7, ( hexa 0x007, DiagCross ),
  • 8, ( hexa 0x008, Vertical ),
  • 9, ( hexa 0x009, Horizontal ),
  • 10, ( hexa 0x00A, Cross ),
  • 11, ( hexa 0x00B, Brick ),
  • 12, ( hexa 0x00C, Yard ),
  • 256, ( hexa 0x100, Frame ), [image] . The exFrameColorExt specifies the color to show the frame. The Frame flag can be combined with any other flags.
  • 768, ( hexa 0x300, FrameThick ), [image] . The exFrameColorExt specifies the color to show the frame. The Frame flag can be combined with any other flags.

(Numeric expression)
exPatternColorExt 8 Indicates the color to show the pattern on the object. The exPatternColorExt property has effect only if the exPatternExt property is not 0 ( empty ). The exFrameColorExt specifies the color to show the frame ( the exPatternExt property includes the exFrame or exFrameThick flag )

(Color expression)
exFrameColorExt 9 Indicates the color to show the border-frame on the object. This property set the Frame flag for exPatternExt property.

(Color expression)
exFrameThickExt 10 Specifies that a thick-frame is shown around the object. This property set the FrameThick flag for exPatternExt property.

(Boolean expression)
exUserDataExt 11 Specifies an extra-data associated with the object.

(Variant expression)


constants BackgroundPartEnum
The BackgroundPartEnum type indicates parts in the control. Use the Background property to specify a background color or a visual appearance for specific parts in the control. A Color expression that indicates the background color for a specified part. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.

Name | Value | Description
exToolTipAppearance | 64 | exToolTipAppearance. Specifies the visual appearance of the borders of the tooltips.
exToolTipBackColor | 65 | exToolTipBackColor. Specifies the tooltip's background color.
exToolTipForeColor | 66 | exToolTipForeColor. Specifies the tooltip's foreground color.
exVSUp | 256 | The up button in normal state.
exVSUpP | 257 | The up button when it is pressed.
exVSUpD | 258 | The up button when it is disabled.
exVSUpH | 259 | The up button when the cursor hovers it.
exVSThumb | 260 | The thumb part (exThumbPart) in normal state.
exVSThumbP | 261 | The thumb part (exThumbPart) when it is pressed.
exVSThumbD | 262 | The thumb part (exThumbPart) when it is disabled.
exVSThumbH | 263 | The thumb part (exThumbPart) when cursor hovers it.
exVSDown | 264 | The down button in normal state.
exVSDownP | 265 | The down button when it is pressed.
exVSDownD | 266 | The down button when it is disabled.
exVSDownH | 267 | The down button when the cursor hovers it.
exVSLower | 268 | The lower part ( exLowerBackPart ) in normal state.
exVSLowerP | 269 | The lower part ( exLowerBackPart ) when it is pressed.
exVSLowerD | 270 | The lower part ( exLowerBackPart ) when it is disabled.
exVSLowerH | 271 | The lower part ( exLowerBackPart ) when the cursor hovers it.
exVSUpper | 272 | The upper part ( exUpperBackPart ) in normal state.
exVSUpperP | 273 | The upper part ( exUpperBackPart ) when it is pressed.
exVSUpperD | 274 | The upper part ( exUpperBackPart ) when it is disabled.
exVSUpperH | 275 | The upper part ( exUpperBackPart ) when the cursor hovers it.
exVSBack | 276 | The background part ( exLowerBackPart and exUpperBackPart ) in normal state.
exVSBackP | 277 | The background part ( exLowerBackPart and exUpperBackPart ) when it is pressed.
exVSBackD | 278 | The background part ( exLowerBackPart and exUpperBackPart ) when it is disabled.
exVSBackH | 279 | The background part ( exLowerBackPart and exUpperBackPart ) when the cursor hovers it.
exSBtn | 324 | All button parts ( L1-L5, LButton, exThumbPart, RButton, R1-R6 ), in normal state.
exSBtnP | 325 | All button parts ( L1-L5, LButton, exThumbPart, RButton, R1-R6 ), when it is pressed.
exSBtnD | 326 | All button parts ( L1-L5, LButton, exThumbPart, RButton, R1-R6 ), when it is disabled.
exSBtnH | 327 | All button parts ( L1-L5, LButton, exThumbPart, RButton, R1-R6 ), when the cursor hovers it .


constants CaptionFormatEnum
Defines how the cell's caption is painted. Use the CaptionFormat property to specify whether the caption of the item displays built-in HTML format.

Name | Value | Description
exText | 0 | exText
exHTML 1 The control uses built-in HTML tags to display the caption using HTML format. The control supports the following HTML tags:
  • <b> ... </b> displays the text in bold
  • <i> ... </i> displays the text in italics
  • <u> ... </u> underlines the text
  • <s> ... </s> Strike-through text
  • <a id;options> ... </a> displays an anchor element that can be clicked. An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link.The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The control fires the AnchorClick(AnchorID, Options) event when the user clicks the anchor element. The FormatAnchor property customizes the visual effect for anchor elements.
  • <font face;size> ... </font> displays portions of text with a different font and/or different size. For instance, the <font Tahoma;12>bit</font> draws the bit text using the Tahoma font, on size 12 pt. If the name of the font is missing, and instead size is present, the current font is used with a different size. For instance, <font ;12>bit</font> displays the bit text using the current font, but with a different size.
  • <fgcolor rrggbb> ... </fgcolor> or <fgcolor=rrggbb> ... </fgcolor> displays text with a specified foreground color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <bgcolor rrggbb> ... </bgcolor> or <bgcolor=rrggbb> ... </bgcolor> displays text with a specified background color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <solidline rrggbb> ... </solidline> or <solidline=rrggbb> ... </solidline> draws a solid-line on the bottom side of the current text-line, of specified RGB color. The <solidline> ... </solidline> draws a black solid-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <dotline rrggbb> ... </dotline> or <dotline=rrggbb> ... </dotline> draws a dot-line on the bottom side of the current text-line, of specified RGB color. The <dotline> ... </dotline> draws a black dot-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <upline> ... </upline> draws the line on the top side of the current text-line (requires <solidline> or <dotline>).
  • <r> right aligns the text
  • <c> centers the text
  • <br> forces a line-break
  • <img>number[:width]</img> inserts an icon inside the text. The number indicates the index of the icon being inserted. Use the Images method to assign a list of icons to your chart. The last 7 bits in the high significant byte of the number expression indicates the identifier of the skin being used to paint the object. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the part. The width is optional and indicates the width of the icon being inserted. Using the width option you can overwrite multiple icons getting a nice effect. By default, if the width field is missing, the width is 18 pixels.
  • <img>key[:width]</img> inserts a custom size picture into the text being previously loaded using the HTMLPicture property. The Key parameter indicates the key of the picture being displayed. The Width parameter indicates a custom size, if you require to stretch the picture, else the original size of the picture is used.
  • & glyph characters as &amp; ( & ), &lt; ( < ), &gt; ( > ), &qout; ( " ) and &#number; ( the character with specified code ), For instance, the &#8364; displays the EUR character. The & ampersand is only recognized as markup when it is followed by a known letter or a #character and a digit. For instance if you want to display <b>bold</b> in HTML caption you can use &lt;b&gt;bold&lt;/b&gt;
  • <off offset> ... </off> defines the vertical offset to display the text/element. The offset parameter defines the offset to display the element. This tag is inheritable, so the offset is keep while the associated </off> tag is found. You can use the <off offset> HTML tag in combination with the <font face;size> to define a smaller or a larger font to be displayed. For instance: Text with <font ;7><off 6>subscript displays the text such as: Text with subscript The Text with <font ;7><off -6>superscript displays the text such as: Text with subscript
  • <gra rrggbb;mode;blend> ... </gra> defines a gradient text. The text color or <fgcolor> defines the starting gradient color, while the rr/gg/bb represents the red/green/blue values of the ending color, 808080 if missing as gray. The mode is a value between 0 and 4, 1 if missing, and blend could be 0 or 1, 0 if missing. The <font> HTML tag can be used to define the height of the font. Any of the rrggbb, mode or blend field may not be specified. The <gra> with no fields, shows a vertical gradient color from the current text color to gray (808080). For instance the <font ;18><gra FFFFFF;1;1>gradient-center</gra></font> generates the following picture:
  • <out rrggbb;width> ... </out> shows the text with outlined characters, where rr/gg/bb represents the red/green/blue values of the outline color, 808080 if missing as gray, width indicates the size of the outline, 1 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><out 000000><fgcolor=FFFFFF>outlined</fgcolor></out></font> generates the following picture:
  • <sha rrggbb;width;offset> ... </sha> define a text with a shadow, where rr/gg/bb represents the red/green/blue values of the shadow color, 808080 if missing as gray, width indicates the size of shadow, 4 if missing, and offset indicates the offset from the origin to display the text's shadow, 2 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><sha>shadow</sha></font> generates the following picture:

    or <font ;31><sha 404040;5;0><fgcolor=FFFFFF>outline anti-aliasing</fgcolor></sha></font> gets:


constants HighLightItemEnum
Specifies the way how the control marks the highlighted items. Use the HighlightItemType property to specify the way how the control highlights the item from the cursor.

Name | Value | Description
exNoHighlight | 0 | The control draws no highlighted item
exCaption | 1 | The item's caption is highlighted
exIcon | 2 | The item's icon is highlighted
exUnion | 3 | The item's caption is highlighted
exHyperLink | 4 | The item's caption is hyperlinked.
exFull | 16 | The exFull flag can be combined with any exCaption, exIcon, exHyperLink or exUnion flag to specify that the item is selectable whenever the cursor hovers any part of the item, not only its icon or caption part


constants IndexExtEnum
The IndexExtEnum type specifies the index of the part of the EBN object to be accessed. The Index parameter of the BackgroundExtValue property indicates the index of the part of the EBN object to be changed or accessed. The Exontrol's eXButton WYSWYG Builder helps you to generate or view the EBN String Format, in the To String field. The list of objects that compose the EBN are displayed on the left side of the Builder tool, and the Index of the part is displayed on each item aligned to the right as shown in the following screen shot:

In this sample, there are 11 objects that composes the EBN, so the Index property goes from 0 which indicates the root, and 10, which is the last item in the list

So, let's apply this format to an object, to change the exPatternExt property for the object with the Index 6:

Before calling the BackgroundExt property:

After calling the BackgroundExt property:

and now, let's change the exPatternExt property of the object with the Index 6 to 11 ( Yard ), so finally we got:

The IndexExtEnum type supports the following values:

Name | Value | Description
exIndexExtRoot | 0 | Specifies the part of the object with the index 0 (root).
exIndexExt1 | 1 | Specifies the part of the object with the index 1.
exIndexExt2 | 2 | Specifies the part of the object with the index 2.
exIndexExt3 | 3 | Specifies the part of the object with the index 3.
exIndexExt4 | 4 | Specifies the part of the object with the index 4.
exIndexExt5 | 5 | Specifies the part of the object with the index 5.
exIndexExt6 | 6 | Specifies the part of the object with the index 6.
exIndexExt7 | 7 | Specifies the part of the object with the index 7.


constants PictureDisplayEnum
Specifies how the picture is displayed on the control's background. Use the PictureDisplay property to specify how the control displays its picture.

Name | Value | Description
UpperLeft | 0 | Aligns the picture to the upper left corner.
UpperCenter | 1 | Centers the picture on the upper edge.
UpperRight | 2 | Aligns the picture to the upper right corner.
MiddleLeft | 16 | Aligns horizontally the picture on the left side, and centers the picture vertically.
MiddleCenter | 17 | Puts the picture on the center of the source.
MiddleRight | 18 | Aligns horizontally the picture on the right side, and centers the picture vertically.
LowerLeft | 32 | Aligns the picture to the lower left corner.
LowerCenter | 33 | Centers the picture on the lower edge.
LowerRight | 34 | Aligns the picture to the lower right corner.
Tile | 48 | Tiles the picture on the source.
Stretch | 49 | The picture is resized to fit the source.


constants ScrollPartEnum
The ScrollPartEnum type defines the parts in the control's scrollbar. Use the ScrollPartVisible property to specify the visible parts in the control's scroll bar. Use the ScrollPartCaption property to specify the caption being displayed in any part of the control's scrollbar. The control fires the ScrollButtonClick event when the user clicks any button in the control's scrollbar.

Name | Value | Description
exLeftB1Part | 32768 | (L1) The first additional button, in the left or top area. By default, this button is hidden.
exLeftB2Part | 16384 | (L2) The second additional button, in the left or top area. By default, this button is hidden.
exLeftB3Part | 8192 | (L3) The third additional button, in the left or top area. By default, this button is hidden.
exLeftB4Part | 4096 | (L4) The forth additional button, in the left or top area. By default, this button is hidden.
exLeftB5Part | 2048 | (L5) The fifth additional button, in the left or top area. By default, this button is hidden.
exLeftBPart | 1024 | (<) The left or top button. By default, this button is visible.
exLowerBackPart | 512 | The area between the left/top button and the thumb. By default, this part is visible.
exThumbPart | 256 | The thumb part or the scroll box region. By default, the thumb is visible.
exUpperBackPart | 128 | The area between the thumb and the right/bottom button. By default, this part is visible.
exBackgroundPart | 640 | The union between the exLowerBackPart and the exUpperBackPart parts. By default, this part is visible.
exRightBPart | 64 | (>) The right or down button. By default, this button is visible.
exRightB1Part | 32 | (R1) The first additional button in the right or down side. By default, this button is hidden.
exRightB2Part | 16 | (R2) The second additional button in the right or down side. By default, this button is hidden.
exRightB3Part | 8 | (R3) The third additional button in the right or down side. By default, this button is hidden.
exRightB4Part | 4 | (R4) The forth additional button in the right or down side. By default, this button is hidden
exRightB5Part | 2 | (R5) The fifth additional button in the right or down side. By default, this button is hidden.
exRightB6Part | 1 | (R6) The sixth additional button in the right or down side. By default, this button is hidden.
exPartNone | 0 | No part.


constants UIVisualThemeEnum
The UIVisualThemeEnum expression specifies the UI parts that the control can shown using the current visual theme. The UseVisualTheme property specifies whether the UI parts of the control are displayed using the current visual theme.

Name | Value | Description
exNoVisualTheme | 0 | exNoVisualTheme
exDefaultVisualTheme | 16777215 | exDefaultVisualTheme
explorerBarVisualTheme | 512 | explorerBarVisualTheme


Appearance object
The component lets the user changes its visual appearance using skins, each one providing an additional visual experience that enhances viewing pleasure. Skins are relatively easy to build and put on any part of the control. The Appearance object holds a collection of skins. The Appearance object supports the following properties and methods:

Name | Description
Add | Adds or replaces a skin object to the control.
Clear | Removes all skins in the control.
Remove | Removes a specific skin from the control.
RenderType | Specifies the way colored EBN objects are displayed on the component.


method Add

method Appearance.Add (ID as Long, Skin as Variant)
Adds or replaces a skin object to the control.

Type | Description
ID as Long | A Long expression that indicates the index of the skin being added or replaced. The value must be between 1 and 126, so Appearance collection should holds no more than 126 elements.
Skin as Variant A string expression that indicates:
  1. an Windows XP Theme part, it should start with "XP:". For instance the "XP:Header 1 2" indicates the part 1 of the Header class in the state 2, in the current Windows XP theme. In this case the format of the Skin parameter should be: "XP: Control/ClassName Part State" where the ClassName defines the window/control class name in the Windows XP Theme, the Part indicates a long expression that defines the part, and the State indicates the state like listed at the end of the document. This option is available only on Windows XP that supports Themes API.
  2. a copy of another skin with different coordinates, if it begins with "CP:" . For instance, you may need to display a specified skin on a smaller rectangle. In this case, the string starts with "CP:", and in may looks like "CP:n l t r b", where the n is the identifier being copied, the l, t, r, and b indicates the left, top, right and bottom coordinates being used to adjust the rectangle where the copied skin is displayed. For instance, the "CP:1 4 0 -4 0", indicates that the skin is displayed on a smaller rectangle like follows: Let's say that the control request to paint the {10, 10, 30, 20} area, a rectangle with width of 20 pixels, and height of 10 pixels, the skin will be displayed on the {14,10,26,20} as each coordinates in the "CP" syntax is added to the displayed rectangle. This way you can apply different effects to your objects in your control.

  3. the path to the skin file ( *.ebn ). The Exontrol's exButton component installs a skin builder that should be used to create new skins
  4. the BASE64 encoded string that holds a skin file ( *.ebn ). Use the Exontrol's exImages tool to build BASE 64 encoded strings on the skin file (*.ebn) you have created. Loading the skin from a file ( eventually uncompressed file ) is always faster then loading from a BASE64 encoded string

A byte[] or safe arrays of VT_I1 or VT_UI1 expression that indicates the content of the EBN file. You can use this option when using the EBN file directly in the resources of the project. For instance, the VB6 provides the LoadResData to get the safe array o bytes for specified resource, while in VB/NET or C# the internal class Resources provides definitions for all files being inserted. ( ResourceManager.GetObject("ebn", resourceCulture) ).

Return | Description
Boolean | A Boolean expression that indicates whether the new skin was added or replaced.
Use the Add method to add or replace skins to the control. The skin method, in it's simplest form, uses a single graphic file (*.ebn) assigned to a part of the control. By using a collection of objects laid over the graphic, it is possible to define which sections of the graphic will be used as borders, corners and other possible elements, fixing them to their proper position regardless of the size of the part. Use the Remove method to remove a specific skin from the control. Use the Clear method to remove all skins in the control. Use the BeginUpdate and EndUpdate methods to maintain performance while init the control.

The identifier you choose for the skin is very important to be used in the background properties like explained bellow. Shortly, the color properties uses 4 bytes ( DWORD, double WORD, and so on ) to hold a RGB value. More than that, the first byte ( most significant byte in the color ) is used only to specify system color. if the first bit in the byte is 1, the rest of bits indicates the index of the system color being used. So, we use the last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. So, since the 7 bits can cover 127 values, excluding 0, we have 126 possibilities to store an identifier in that byte. This way, a DWORD expression indicates the background color stored in RRGGBB format and the index of the skin ( ID parameter ) in the last 7 bits in the high significant byte of the color. For instance, the BackColor = BackColor Or &H2000000 indicates that we apply the skin with the index 2 using the old color, to the object that BackColor is applied.

The skin method may change the visual appearance for the following parts in the control:

  • headers of the groups, BackColorGroup property, BackColor property
  • item, ItemBackColor property

For instance, the following VB sample changes the visual appearance for group headers. The BackColorGroup property indicates the indicates the default group's background color. Shortly, we need to add a skin to the Appearance object using the Add method, and we need to set the last 7 bits in the BackColorGroup property to indicates the index of the skin that we want to use. The sample applies the " [image] " to the headers and the control looks like follows:

With ExplorerBar1
    .VisualAppearance.Add 1, "D:\Temp\ExplorerBar.Help\tabup2.ebn"
    .BackColorGroup = &H1000000
End With

The following C++ sample changes the visual appearance for group headers:

#include "Appearance.h"
m_explorerbar.GetVisualAppearance().Add( 1, COleVariant( "D:\\Temp\\ExplorerBar.Help\\tabup2.ebn" ) );
m_explorerbar.SetBackColorGroup( 0x1000000 );

The following VB.NET sample changes the visual appearance for group headers:

With AxExplorerBar1
    .VisualAppearance.Add(1, "D:\Temp\ExplorerBar.Help\tabup2.ebn")
    .Template = "BackColorGroup = 16777216"
End With

The following C# sample changes the visual appearance for group headers:

axExplorerBar1.VisualAppearance.Add(1, "D:\\Temp\\ExplorerBar.Help\\tabup2.ebn");
axExplorerBar1.Template = "BackColorGroup = 16777216";

The following VFP sample changes the visual appearance for group headers:

With thisform.ExplorerBar1
    .VisualAppearance.Add(1, "D:\Temp\ExplorerBar.Help\tabup2.ebn")
    .BackColorGroup = 16777216
EndWith

where the 16777216 value represents 0x1000000 in hexadecimal.

The screen shot was generated using the following template:

BeginUpdate

Images("gBJJgBggAAwAAgACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjIgjIBAEijUlk8plUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDh+Dw1bwuJh0Sf8txeHyFXx+Ryk9wsnxbAzUpycYxWNiWMyujleXjOm0+gjKA1gA1iA0Wf0mz2WY1WwjWywuvz2N1GzyO11ON3mXxe6xfFzvAwXI1UY3mh5292PJ1vMw3T7Hbo3T73L7nhl3f5/i8034Xn9Xr9nt91Cio+lXyjsfkMjAEkk/69Hg97UpSeZ3pSeBnpScAHwO/iMmBBaMQalJAQc10JvylUJkAD8Dh+lJ8Q4k5/D+zjygAgI")
Images("gBJJgBggAAwAAgACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjIgjIBAEijUlk8plUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwV/YGFAGFYGDxVbxGHw2NxuLyVKyGPy2JxsPiT/yedn+RjOVzGGzWlh2bz2pl+gjGsx2jxOaQGz1Gmzma1Wq2aAk+uzOn2wA3fC2nB3OSxvDjXJ2m/znD4Oa13Hxei4m85ek4Hb5+06Hc6nh1uX1+o7G18HT8XrjXR0/n8/G9nzl/uznq+n5mXy/X9/z/wBAKaIqHyVQKjqPpCkYAJIk8Gpu3EBJS06TnmziTnBC6NHAH6UmAB8PAGlJAQejMSJVESUxSjRAAOlJwRck58RAk5/Ro9pPwnDSMoCA=")
Images("gBJJgBggAAkGAAQhIAf8Nf4hhkOiRCJo2AEXjAAi0XFEYIEYhUXAIAEEZi8hk0plUrlktl0vmExmUzmk1m03nE5nU7lqAnwAYFBnlDolFo1HpFJmkOAE+QFAoVBYFQqdKq1XrFZrU2plMp1UsFfr9Srdls1ntEzrsNiL/ps/sU/sleuVRoVpvF5vVDtduulPudswNuslju1VveJxWLk19ttvwFCpmDsGToVxp+MzWbs2Ov+Vtk/t8XymUx2c1GppOOw1Ty1T0WismmtlM1W33FEz+zw9hzOxzOetm54nFoe8qfIsGF3/B2vDjGi43T6k45XXy/Nnva6vd7007HJ7MX4Hk7nS7/p9Utskz8vr+Hxono+X1+33/HGig+lX8jiPJAjCRpGjLMpwph/D+lJ+A+lJ8AOlJ4QIjJwJUxECpnCaMgGlUOJMYAEwilR+BylJ/j3Ey3JMgIA=")

VisualAppearance
{
    Add(1, "gBFLBCJwBAEHhEJAEGg4BRIGg6AADACAxRDAMgBQKAAzQFAYZhxBaERiGIZ4JhUAIIRZGMQxXAcMQ1DIDIRhQABSDUJYjSTJcIjKKASgFBIYRoASL5UhkMocRbNMySGKMexfBoZZQGIY4eDOM46TpNcB0VLNEQHEaeJ5jYYaFh6B46R5HdQQTD0fgAf6EbAjGoaUjCVYRV5HcbCNDQUxFLiEa6sKr4aiiJp2SpAcqXSAFdxHNS3YxEfAaNo6FZkV4MdAxDQdCgLQyaKYpSqZapuBJSWZCNCRDiksIAB5OGR3DYOSzHGDMIIsei7Jhqa4JaDAYqwTgcO5JAa5bjweIbXzyfJ+SrLN76dq+QQSEaERBuDIMEj0MaJZrDNbDMJbD8FZPgGcIBl4ZZXFGT5NHQjg+hiWxbh6BJbCAdZrHQDA5lyU5SnePwdn8C4DHyCrDlkYAHieDZvHWXIwAACSSGGPBjB0RwwjgYgbEcBRYBAQJEN8MoDlEYJZAkCgQhfGByhsYBhBYPwAnefRfCsSYhmwcwPEACIeCmCgiiiNgsguYo4kYLoMiMCJODaDRjgiUg6g2Y44mYKoJAeNpgACEAKFGdBSDuSAhi4SISiSGQuE6ExlAkMhShOZQ5EYVIVmUaRmFWFplgkchahKZBREoQIME8AgUG6GRmHmGhohqZopjYaYbmaSZCG6HBnEmTh2hyJ4JlYeYdmeKIqGQIhHCOQoAC8SoijaBIhigWgegqIhokoIoOiKaJ6DaEIkmkKhWhGJZpEoYoNiCKAaAIfoKg8EgwHWKBHFMBIvCwahqiKJ4qGqSoui6KorAqNoxiuawqlaNItmsOpmjbgx60UJ5igORIPB4LAhmCRgsksawekmMgsisNpMjObI7EaTo0i0CxOlaNRtgsUpajWbY7EKRYxGwhZyCSR5LgwfAyguApqmiOouhuLpujsbwLjKco7m8O5GnSPZvGuZp1j6b4LnKcY5i46pyCWB58AwfwzkuUp/AiQowhwLwOkMcQMDMEpDnEPBHBSRZxGwZwVkacYMHMEZBjA6pzCaCAsgyAg0kwEwPCiSoyhyLwukscwMjMMpLnMPJHDSTZzGyZw1k6c4MnMMeTmyCIdCETw9AyWAxgyDQfEmUmZDcTJTnSPRHE6VI1A0TxWlUdYNFMWpVnWPRDEWUQ0DuBJ0CgCIdgyCT6DMMxolqNodi8bpbHcDYzHKW53D2Rx0l2dxtmcdZeneBscw4xZhsG2BEJARgPCcAyYoDQPAfgTGIHELgbwMjHHiHwR4HRkhyA4J8Foyh5gcFODUZY8w+CHAWMIOD3h1BTEiP0DIHg5CaEMK8KI1Q6g9C+F0aw9gOhnDKNcewfRHhpG2PYbozw1jdHuB0c4Yxph0G6BEKgSRPC+AyNQNgmwvA/EmOQPIXg3iZHOecR4nXkgeE+K0dQ+wPCnFqOsfYfhDuFDw94dgVwJDfAyCw5Axh7jRHqH0H4Xxuj2H8B8M45R7j+D+I8dI+x/DfGeOsfo/wPjnHEPkT4MxxAWBEGQPYQAYjmBwIcDgBxAgwBEAUIA2CajgC4BEQI0AlAICCDgFoBQwDEAoIMKAXgGjBAQAtP4GhwgeHENAJwQgcBKByMcHA9xCgQFUBQYQuAugLDCIQFghgoRYGGBgNIDRwi0ByIYWA7gOBDGQGMBIIQZDhA+AIcAUAiA4EUDoI4SB8CJAiCoEgxBcCdAmGIQgTBFBRB8CkYoGBUgVHELQLIihYhuBYEUZAowIgiBoEIC4YhGB8CMDEeAOhjhcDOI0GIogahGGwNkDY4wuBxEaNEZQOAjg4HaB0MYxA6CPCiN4HoxwsDNAwNcBA+QLjiE0EEJAQRtA7COMwQ4kQZAiCKEgbIGQRjkUQJEaQSgkBJByC0EoZBiCUEmFILwTRkgJAOCEMgCBhAVCGOYKIDxIjcB2KUGgqBKDyFMFYJQuQugqFKIQVolgZC+CyEsLIaQWjlE4LkSw0h1BaCUFkIguAjjQGKBUWYBgwiPACOAHwpgaDIEwPMEwZgmC5E6DIUwhBmiaBmD4NITQsipBqOYTg2RNDTDUGcZgKREgwAMEgWAHwpiEiICEcoOQzg8HNQYVwdQnDZGmDsc4ZB4CdGmMYPQTwcjtB4KcYg9ZOi6DiM4FM2QjjYGYBYSgBhAiPCCOgHw6AagIFAPQE04BdAdCEKgQoDRRA0B8IkKIWgUhFHQJ0DIohqBqEONAFQCQgAGDwLcD4dBCB+AeGEdoSQ0g9BMKUCgrhKhSG0FMJY6QygwFKNQYxtAdBtCYKkYoNRTg0F1WIFQQrQDgGmBcKoBAugPGiPAHwKgahIFQPUEwpgqC6E6FIVQhQmiqBqD4VIVQtZlHUJ0LIqhqhqFONQJQiQoAGFgL4D4lcSiPEiPMLIawehmFaBUVwtQrDaGmFsdYZQ4CtGqMYXQVwdDtC4KsYodRXg1F0LEawKr6DoG0BgGwBAwCPHCPYHw7AaiIFgPYEwxgsC7A6GIVghRGiyBsD4ZIWQtgpDKOwTomRZDWDUMcbASwEhgAMOgYgHxbCED/lAfYaQ2g9eqBYVw1QtDbCmGsdoZRYC1GsMYbQWwdhtDYK0YotRbg2F0NEbQK8kBHHgOADA9wCBjEePsRocR3BFGSLkK4LhzBcG2J0OY7hCjR0eBIcQXAAjIBkMceo1xdg3DEO0Lo2xch3HcN0cIuxriKHgF4HYzQ8hvCKOQXoVxPD1G8JsZwnxJAiCMB8cYnAzhfB22IF4tR8i/AuO4fY3xtj1D+K8co/xgBYAOAIMADAGiAykAUXwyRCgxE2IQQAjwYCCB8MIJA9wFBhA4CsQg8BZA8GCKUQHbSAg==")
}

GroupHeight = 36
DelayScroll = 200
ForeColorGroup = 0
BackColor = RGB(255,255,255)
BackColorGroup = 16777216
ShowFocusRect = False
Groups
{
    "
Comments?"
    {
        CaptionFormat = 1
        Alignment = 0
        Image = "gBHJJGHA5MIgAEIe4AAAFhwQiAbCAbigbEsWGAlGA7Eo7HcbIowIpFHZQkZQKA7IsplErlBbLZFmEzLZlMpQmxbOE2mxwn06nZ7n0+PdFMtFOCFQp7pR7SFKQtPSFPTdTTdVq9ZTalralr1fWClWFjsi7s1nYtmYtrtjQt1vbdubdzujlublvF5eDleF9eD7v77fYBwmFw2HxGJxWLxmNx2PyGRyWTymVy2XzGZzWbzmdz2f0Gh0WjzsMAAhfIEAMMf4AFmmhOxAAI1r/BIcJBwcCEQYFG4ULjISG7BYQCr+bawALEAqJBozHyEPChYbFBwgISGZjYOAjY/XIqCHDRUQDZKCDYPNxETISYgLCogGCWHgIKKmY4NGpXWw4AJRGGAhGg4PJXB4YIqDIaZTA2RwZHIPI4GGBIKhURA1C6XIaBWKZLimB4TFwYBKFQJRTjKLZUDQaIZHYApNiaIY9CYOBYAGaZWCwLZuAIJZ4GEYJZDkfoTBAXA5BabYLjYJJ0G4PBqlYL5UgGHYwBqVh7nMRJUH+Ew2HQDI7nmcBBEkbIPDMTYKmIKJmggIIGFqdBLhCRBeEQaobBqRQdBqJxFkgBI7AgDodjcaJGgoS5xGcFooHqbQLkQHYflMJAIhIKJmFAPJbkQKJdFQMBAlSIZPFALp4FqbQMHANJuFyPwuHgVppmsAZeluQAIkGIoGA0FYhC8fBuCuPZwESIp6l0NB/n8PoGm4BYqlILosi0RIbA6PBwmiOABiiYh+kmCRAiYDJcA+QQEgcMpqCEMggiQTIvHaaIgDCPYUhgXBIDmPBWjKERBBYUh0A8RBHFyIxNDCRBemgDwFhSUgYXYExoEwIQwAaHQ0GsJoXiYJBRgSEQ+GgYIDhETBaiyR4BCqMgLjkBBTDAARHh4PJiHIIA/DacAQjwFgUESSAgiuHR6GeNYUkMFAvkwF4akyUgxjQUwUmgAgikKahTE2N5lBoc4gMIAAdoCA"
        ItemHeight = 52
        Tooltip = "You can assign a tooltip to any group or to any item."
        AddItem("Provide us with feedback on this product. Please feel free to contact us for any further question.")
        {
            Image = "gBHJJGHA5MIwAA0AD3AAAAsPCERDcTEsVGEXHcZIsbKEdLcfMshOEjPclQsnSEpTabSErTalUsvmCwWClmiwXa7nE5Ys9aE/bdBcrlbdDcrweFHpD7fbwpj7ANRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzqsNAAhfIEAMNf4AFl2AEIhRABF9f4BDBIWCgYKDBAPBwQeCvULDQ4CHp4WAgKKiQIEAwWPCISBgMZHB4JER4PDQeONRgjFZyTBwYCAJYDBAiABwBCgUTNTY4ObacjAWanJ4ODw4KiYbKwUyHBQ3HZ0fDJWipKaeDY0Jg4JQ0EQHBRBPImJCgQCDQQEBw4OBNIDAICDBoIBQgKCgEIAgEAg2hqZBOhWO51CgTQPBsPBQGWW5Xm+X4/B6MhcCWGZQnCYZEAacRqmSXA4mcBYJCuKwuiYaJYjKY4lEiJxUDUCh0jKB4lk+RQvCSCoXigT4tgmNA+hAGwAjWAoFhwFg0GgQAxkEBoFA0WAmyed4vGEKxTn0bggF4HBwHGPx2jkbwdgqXI5l8DJRCWR4XFCOgokSSofjWR42DCeQhlGbIbkUf57jgIBRCQeYbgqdB2HALJxAKTJvluZZflSYJBEKBQFksD5OkeXIUikcBOniA4tDQUZ4lIbgxEsCpUHANIACUQgqDQBJiCMSQ2FaRJqm0NYtjicAgEMLh6jqcA6iEMpykqNQHjoWpKkSBxCGqAABA4ThKm2RQ4GicxQjqKxEmwKg4mIHoDmwN5ljaGAKkcHJ1BQMg6gaJRakuSAkCcI4SDODA0DgEhJD8JoTlKOhBB6cAOiILAzFScpLC4BRCECQBPi6UBgEqShAnSbBLiESIEk8TJGlqQ4gr0IAyGoJoOgiCBgk6DoMlAbxOgWbADGkJANHaGgAgOCwuCgQI+ngLobgiTYdHiMhggICB0FMQAAn0QpjhQMYkBKDQIicL40loQA1g8YAjEsAIHkAOhIiML46lIbxANAapwD8CpOnWFAIlQLZEgITYDgYGh4AAI51BaeAgDYVx+noT8ykKVU6g8UBVG8WRQD8JQREOWPKnCUx0iKTAWFQURLHqIADgwIpsE0NRVBqcoVFiGwW54yg9HWDQ1gmWRzBWJISFkEwWkaAJzCIcBBFGJodjOIolHCLYwCoOZ4lwDApH8RQLHIRgGkMLB4CeA4BlMN4oBsFREBGSQBEGFBuCmIABAYKVlAXxmDwGIBseY9R4BpA4BAY41QDANBIYwNwKhbiMCAG8BQvBShBGUHAVo1QrjFAiPkTAVwqAvFeMwLYzwbDbE4BsSQSxxBlDIMgIQUgjpZCeCIfo1xKCCAqNkTg0w6BNFSCQXo9wqigHqNYLgdx2j1GuGAN4/QgADDIHYNI9hshoFOK0OwlyogAB2QEA=="
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
            SingleLine = False
        }
    }
    "
Product Support Centers"
    {
        CaptionFormat = 1
        Alignment = 0
        Image = "gBHJJGHA5MIiAEIe4AAAFhwFIJpApWPoFNSbCAPB4QJhLCBWKoQNRpCB+V8lXIQRDDDQZDIaEYjDRMmR+PoaSSREsxEpgFolNQ3Ep0IIlSVFWKvF43G4vSRLF6dZovU7XF9Jq65HVMHSnJdda46WNhYrDIidJZPjpPkBPWJVtzhLK7uVlLLPYZkXbXMjFdZuB4ZNzFNJ5vx5Z7NxDrQZ+NKDYp9QbZa6OB4jRyIOaYSWbSR9TCxQ6YyijDItUaIPqjTurTqHUbZUqjcbhVuqVqnQ+5SKtdzrXEjXG6XCxSPFTa4cav5ThXDuZrCEYtYSxTbCXaR7HXYqvZoZG7NXabZrFUvlV7X83q9LP9q5a7Z+G/cUdcS7Uri+X6YbicZmnE352CCJZ2DoOZ2P/BJrnYdxwnuMAvnumx7kQQ57pye5Ok2e5TlKe5dlye6ynuxJ7t+AMUxVFcWRbF0XxhGMZRnGkaxtG8cRzHUdx5HsfR/IEgyFIciIYAAQnyAgAoYf4ABZIyEyiAAESaf4Eg4JBYFAYJBgQBYTCQUAQFCIZDgUCRWCiWYTGCYZFgICpWGyDAzFEIpDgWA4aCYdAwiaTAWhOYZCAyAApEaJYagWB4HCQRIJDKDBMAQEotCiQYiEUTQaA+GZXFSHIwEADRKBYBolCoMZilOCYSCWQQFEoRApCWaRMg2UoFA4YBClOSpTDUUgABKTAgGaZJSC2JpXCCfYnnEDQVgWaocFieQKHaQAWhMOIHCYIDZioUYrCcLg4mCKBFEmWI0imBQUBwMAGk2WopzWWJBAGIYuBSIJ3nEaodngNxjkURpZk8dA4hEYphAsQ4fhsIwEkyVgkl4DZvjcJJAGCYoBgYAYJE4JJpnEFRLhaTYZh+VxcnKO54hoBA5BeChoCEVh1BqYwdhUc4EF4HB4BWLY7EMJgAHMM53lobBAmOf5vCwXp+DeFwvmmUgcmmQRbgmGhnkaT4Pi0fwyHyV5aBifguBEe59itotzCKK4gk4eIhjye5giqTYyhaWhYCMDQ2AyApugsKhSHiKYNB+WAAjAOoviyWJggiAJNEMQwJicJBKkACZ0FaCICCKdR+hgC4ugQMAwTgLYQEAIYJCOcBzHAB4tACMxijcFxOhiIgFjUEhIkABYNBQGBrgMDRcDgAQBF0SpUGoKY1n4OHnjMBh4mGCQrBAOBJAoE4wCAIoBA2EAADKAQWngFBJi4H4GEicoIASUgwgKAYI41B0vTH4C0SgwAEBoBAGYaAAAiACBqAQTgPwICZGAGgUhPRCBLCW/0IgCQdBoCLA0Cwqh4iDAcOoXIpBUAJA2GwGAgAwgkFsNcQQpAFClCiIIDQpxRDmAIEwDARBVDoFUKsfwQRgBWCEAkUA8RJhLCcBgAw1whA/FYNETwEwSiQE0FMAQSxUC6EMGEH4sRbgoEeLMMQxA1h7BwMgIoohUgxDCJQKYbhlDpGyKwWo3A7DrHaLccAhgVjuCAikAAOyAgA=="
        ItemHeight = 16
        AddItem("exGrid")
        {
            Image = 1
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
        }
        AddItem("exComboBox")
        {
            Image = 1
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
        }
        AddItem("exTree")
        {
            Image = 1
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
        }
        AddItem("exPropertiesList")
        {
            Image = 1
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
        }
        AddItem("...")
        {
            Image = 3
            Alignment = 0
            ForeColor = RGB(24,0,255)
        }
    }
    "
Other Support Options"
    {
        CaptionFormat = 1
        ForeColor = RGB(128,128,255)
        Alignment = 0
        Expanded = True
        Image = "gBHJJGHA5MIgAEIe4AAAFhwQiAbCAFDcVEolCEXEowjg7GAbHY7CEhHZFkRFlBQIoQKEtLZQCEvIsvKBbmxlnBwnR7OAlnhbnhwPdDQp7EtFPaFQo7pSFSFLSFRTdFTaQHdVItVQqbTZbriQribUtdsdiUpwUtpWCwItrOFrWC7WBwuSbXd3YqlQrFXaQviwvi7YrFv2DaCwSGHTbQXalaDFWDQaGLyTbaCFyzFyzQbbbUudbblvLlcq70jF0jleF5eGMeDbXevYrwcrQeGt27b27wfe13rbfe0ffB4b7APH5HJ5XL5nN53P6HR6XT6nV63X7HZ7Xb7nd73f8Hh8Xj8nfhgAEL5AgBhj/AAs88J+QABHuf4JDhIOCCQgJCYXBIEhkFgUIhkCAwSkgLAglEcRCEOBwGjUHg0BgYQCAuHQ6FwOBAiEARjkGFAXgcSh4CGA5GkuGgjFEXBQDGJAlkiEgXP0WIBAKBQJB8K4kCwDI5lIKILg6NBaHIaIRhMYoGgkPorBIaIgnKH5LBIPYlDqVJ6hOKpCgiEg2HQIA7AGKhRB4WZdGwWAYlEQgEDgDZCCaXBwkEZxKh+JB9HIRJBBaIRJjgAZhhqVJYFcKoEiKK40FKJAxCGbgDEgEYhkcEA7mELJAgkIgDEqfQqgERRPFAH59nYCBAhoIRaB8HJLkaQAhGOB5Nh+LxjmsGIAgKdIEBWGo/msJRKjaZoPiQSAGCCEQyGQCANAmIgrCKZYrjUA5ZgkKwGBCSJCEIRYSD6JJ+HwDBNkIZRmB6U4nH+PpPC4JBJBAJJnBGPImnGYQFGuHhDhEaxtlqGIqHSPpInoUpYkCYgIF2BQijoConHGHoziuOQkhBcYIAUXwzA4JIDE8GwviKDpECuK4CBcfhYACIpqnia5vjYGhsBsagCBoFBjC2LIFGiUACAkJRMGOMA2BsYILHEkxCgOSg+guMxsAwBoKhUIIBWMOpwGECAXC4IhRDaMgqiQKxAB0Eh4k0CBgASeJxAeI4aGiQYHCELpSkwK4kjsMALkMDR/Gwb4FGqepqkCNo8gyZIJiqAwPDwCAGiSBholEOJzHqaAiDYHoGECUo+BIWJ8k4LIwHSNALAaRoalsawsBWegoHIH4PnCLArkAA4aiybiWGMMxUgcHouEyconB+UJ0BMTBDG0a5rgKDooGoQIkDUbQ7iCLoLj0IgBkWSxnDCOwpimK5LFIUo2gAXQUkuOhGh6LcSwbQkBtDABsVQVxIhgGkLEQAQQrCeFKHoZw6gpBTB0NgZQ6AxiSCaLYAQcAjgcCiAQCYRQaBRCIA8b49gQBDAeCgLCYBRg0HgMAIYER1jKHAO42ISg9guFGG4UIZApBEAQP0Go1BeD8DEBQCAAAdkB"
        ItemHeight = 32
        Bold = True
        AddItem("Contact  Exontrol  Support")
        {
            Image = 1
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
            CaptionFormat = 1
        }
        AddItem("Support Options, Phone Numbers, and Online  Support")
        {
            Indent = 20
            AllowHighLight = False
            Alignment = 0
            SingleLine = False
        }
        AddItem("Customer Services")
        {
            Image = 2
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
        }
        AddItem("Customer Care, Product Purchasing. Site and Product Information")
        {
            Indent = 20
            AllowHighLight = False
            Alignment = 0
            SingleLine = False
        }
        AddItem("Newsgroups")
        {
            Image = 3
            Alignment = 0
            Underline = True
            ForeColor = RGB(24,0,255)
        }
        AddItem("Discussion groups and Forums about specific Exontrol products")
        {
            Indent = 20
            AllowHighLight = False
            Alignment = 0
            SingleLine = False
        }
    }
}
EndUpdate


method Clear

method Appearance.Clear ()
Removes all skins in the control.

Type Description
Use the Clear method to clear all skins from the control. Use the Remove method to remove a specific skin. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.

The skin method may change the visual appearance for the following parts in the control:

  • headers of the groups, BackColorGroup property, BackColor property
  • item, ItemBackColor property


method Remove

method Appearance.Remove (ID as Long)
Removes a specific skin from the control.

Type | Description
ID as Long | A Long expression that indicates the index of the skin being removed.
Use the Remove method to remove a specific skin. The identifier of the skin being removed should be the same as when the skin was added using the Add method. Use the Clear method to clear all skins from the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.

The skin method may change the visual appearance for the following parts in the control:

  • headers of the groups, BackColorGroup property, BackColor property
  • item, ItemBackColor property


property RenderType

property Appearance.RenderType as Long
Specifies the way colored EBN objects are displayed on the component.

Type | Description
Long | A long expression that indicates how the EBN objects are shown in the control, like explained bellow.
By default, the RenderType property is 0, which indicates an A-color scheme. The RenderType property can be used to change the colors for the entire control, for parts of the controls that uses EBN objects. The RenderType property is not applied to the currently XP-theme if using.

The RenderType property is applied to all parts that displays an EBN object. The properties of color type may support the EBN object if the property's description includes "A color expression that indicates the cell's background color. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part." In other words, a property that supports EBN objects should be of format 0xIDRRGGBB, where the ID is the identifier of the EBN to be applied, while the BBGGRR is the (Red,Green,Blue, RGB-Color) color to be applied on the selected EBN. For instance, the 0x1000000 indicates displaying the EBN as it is, with no color applied, while the 0x1FF0000, applies the Blue color ( RGB(0x0,0x0,0xFF), RGB(0,0,255) on the EBN with the identifier 1. You can use the EBNColor tool to visualize applying EBN colors.

Click here [image] to watch a movie on how you can change the colors to be applied on EBN objects.


ExplorerBar object
Tip The /COM object can be placed on a HTML page (with usage of the HTML object tag: <object classid="clsid:...">) using the class identifier: {3B1C55AF-6DC2-4146-811D-60DA6199DC72}. The object's program identifier is: "Exontrol.ExplorerBar". The /COM object module is: "ExplorerBar.dll"
The Exontrol's ExplorerBar ActiveX control, an accurate reproduction of the Microsoft Windows XP Explorer Bar, provides an intuitive user-interface when large amounts of information need to be presented.The object model is rich and intuitive. The ExplorerBar component lets the user changes its visual appearance using skins, each one providing an additional visual experience that enhances viewing pleasure. Skins are relatively easy to build and put on any part of the control. The ExplorerBar component supports the following properties:

Name | Description
AllowResizeShortcutBar | Specifies whether the user can resize the shortcutbar, to allow multiple shortcuts to be visible.
AllowTooltip | Specifies whether the control displays a tooltip when the item's caption is too long.
AnchorFromPoint | Retrieves the identifier of the anchor from point.
Appearance | Specifies the control's appearance.
AttachTemplate | Attaches a script to the current object, including the events, from a string, file, a safe array of bytes.
BackColor | Retrieves or sets a value that indicates the control's background color.
BackColorGroup | Retrieves or sets a value that indicates the group's background color.
BackColorGroup2 | Specifies the color at the ending boundary line of the gradient group's caption.
Background | Returns or sets a value that indicates the background color for parts in the control.
BeginUpdate | Maintains performance when items are added to the control one at a time.
BorderGroupHeight | Specifies the height of the border between groups.
BorderHeight | Specifies the border's height.
BorderWidth | Specifies the border's width.
DelayScroll | Specifies the delay used when user selects a group.
DisplayExpandIcon | Specifies whether the control displays the expand icon on the group's caption.
Enabled | Enables or disables the control.
EndUpdate | Resumes painting the control after painting is suspended by the BeginUpdate method.
EnsureVisible | Scrolls the control's content so the specified group/item fits the control's client area.
EventParam | Retrieves or sets a value that indicates the current's event parameter.
ExecuteTemplate | Executes a template and returns the result.
ExpandIcon | Retrieves or sets the index of the icon used to paint the expand button.
ExpandOnClick | Expands the group when its caption is clicked.
ExpandShortcutCount | Retrieves or sets a value that indicates the number of shortcuts being expanded.
ExpandShortcutImage | Retrieves or sets a value that indicates the index of the image being displayed to expand the shortcuts.
Font | Retrieves or sets the control's font.
ForeColor | Retrieves or sets a value that indicates the control's foreground color.
ForeColorGroup | Retrieves or sets a value that indicates the group's foreground color.
FormatAnchor | Specifies the visual effect for anchor elements in HTML captions.
GroupAppearance | Specifies the group's appearance.
GroupFromPoint | Gets the group from point.
GroupHeight | Specifies the group's height.
Groups | Retrieves the control's groups collection.
HandCursor | Specifies whether the control uses the hand cursor when the mouse is over the item.
HighlightItemType | Specifies the way how the control highlights the item.
HTMLPicture | Adds or replaces a picture in HTML captions.
hWnd | Retrieves the handle of the control's window.
HyperLinkColor | Specifies the hyperlink color.
Images | Sets the control's handle image list.
ItemFromPoint | Retrieves the item from point.
Picture | Retrieves or sets a graphic to be displayed in the control's background.
PictureDisplay | Retrieves or sets a value that indicates the way how the graphic is displayed on the control's background.
Refresh | Refreshes the control.
ReplaceIcon | Adds a new icon, replaces an icon or clears the control's image list.
ScrollButtonHeight | Specifies the height of the button in the vertical scrollbar.
ScrollFont | Retrieves or sets the scrollbar's font.
ScrollOrderParts | Specifies the order of the buttons in the scroll bar.
ScrollPartCaption | Specifies the caption being displayed on the specified scroll part.
ScrollPartCaptionAlignment | Specifies the alignment of the caption in the part of the scroll bar.
ScrollPartEnable | Indicates whether the specified scroll part is enabled or disabled.
ScrollPartVisible | Indicates whether the specified scroll part is visible or hidden.
ScrollThumbSize | Specifies the size of the thumb in the scrollbar.
ScrollToolTip | Specifies the tooltip being shown when the user moves the scroll box.
ScrollWidth | Specifies the width of the vertical scrollbar.
SelectShortcut | Selects and displays the specified shortcut.
ShortcutBarBackColor | Retrieves or sets the shortcut bar's background color.
ShortcutBarHeight | Selects and displays the specified shortcut.
ShortcutBarSelBackColor | Retrieves or sets the background color for the selected icon in the shortcut bar.
ShortcutBarSelCaptionBackColor | Retrieves or sets the background color for selected shortcut when its entire caption is displayed.
ShortcutPicture | Specifies a custom-size picture assigned to a shortcut.
ShortcutPictureHeight | Specifies the height in pixels of the custom size picture being displayed in the shortcut bar.
ShortcutPictureWidth | Specifies the width in pixels of the custom size picture being displayed in the shortcut bar.
ShortcutResizeBackColor | Retrieves or sets the background color for the shortcut's resize bar.
ShowFocusRect | Specifies a value that indicates whether the control draws the focused item.
ShowImageList | Retrieves or sets a value that indicates whether the image list window is visible or hidden.
ShowShortcutBar | Retrieves or sets a value that indicates whether the image shortcut bar is visible or hidden.
ShowToolTip | Shows the specified tooltip at given position.
SmallIcons | Retrieves or sets a value that indicates whether the control uses small icons or large icons.
Template | Specifies the control's template.
TemplateDef | Defines inside variables for the next Template/ExecuteTemplate call.
TemplatePut | Defines inside variables for the next Template/ExecuteTemplate call.
ToolTipDelay | Specifies the time in ms that passes before the ToolTip appears.
ToolTipFont | Retrieves or sets the tooltip's font.
ToolTipPopDelay | Specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control.
ToolTipWidth | Specifies a value that indicates the width of the tooltip window, in pixels.
UseVisualTheme | Specifies whether the control uses the current visual theme to display certain UI parts.
Version | Retrieves the control's version.
VisualAppearance | Retrieves the control's appearance.


property AllowResizeShortcutBar

property ExplorerBar.AllowResizeShortcutBar as Boolean
Specifies whether the user can resize the shortcutbar, to allow multiple shortcuts to be visible.

Type | Description
Boolean | A Boolean expression that indicates whether the user can resize the shortcut bar.
By default, the AllowResizeShortcutBar property is True. Use the AllowResizeShortcutBar property to hide the resize bar of the control's shortcut bar. Use the ShowShortcutBar property to show or hide the control's shortcut bar. The ShortcutResizeBackColor property changes the visual appearance of the resizing bar of the shortcut bar. Use the ExpandShortcutCount property to specify the number of shortcuts that display their full caption, else the first icon in the caption is displayed or the assigned picture is displayed.


property AllowTooltip

property ExplorerBar.AllowTooltip as Boolean
Specifies whether the control displays a tooltip when the item's caption is too long.

Type | Description
Boolean | A boolean expression that indicates whether the control displays a tooltip when the item's caption is too long

By default, the AllowTooltip property is True. Use the AllowTooltip property to disable tooltips in the control. Use the ItemToolTip property to specify the item's tooltip. The item's tooltip shows up when the cursor hovers the item. Use the GroupToolTip property to specify the tooltip for the group. The group's tooltip shows up when the cursor hovers the group's caption. Use the ToolTipWidth property to specify the width of the tooltip window. The ToolTipPopDelay property specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control. Use the ToolTipDelay property specifies the time in ms that passes before the ToolTip appears.


property AnchorFromPoint

property ExplorerBar.AnchorFromPoint (X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS) as String
Retrieves the identifier of the anchor from point.

Type | Description
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates.
Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The y values is always expressed in client coordinates.
String | A String expression that specifies the identifier (id) of the anchor element from the point, or empty string if there is no anchor element at the cursor.
Use the AnchorFromPoint property to determine the identifier of the anchor from the point. Use the <a id;options> anchor elements to add hyperlinks to cell's caption. The control fires the AnchorClick event when the user clicks an anchor element. Use the ShowToolTip method to show the specified tooltip at given or cursor coordinates. The MouseMove event is generated continually as the mouse pointer moves across the control.

The following VB sample displays ( as tooltip ) the identifier of the anchor element from the cursor:

Private Sub ExplorerBar1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        .ShowToolTip .AnchorFromPoint(-1, -1)
    End With
End Sub

The following VB.NET sample displays ( as tooltip ) the identifier of the anchor element from the cursor:

Private Sub AxExplorerBar1_MouseMoveEvent(ByVal sender As System.Object, ByVal e As AxEXEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent) Handles AxExplorerBar1.MouseMoveEvent
    With AxExplorerBar1
        .ShowToolTip(.get_AnchorFromPoint(-1, -1))
    End With
End Sub

The following C# sample displays ( as tooltip ) the identifier of the anchor element from the cursor:

private void axExplorerBar1_MouseMoveEvent(object sender, AxEXEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent e)
{
    axExplorerBar1.ShowToolTip(axExplorerBar1.get_AnchorFromPoint(-1, -1));
}

The following C++ sample displays ( as tooltip ) the identifier of the anchor element from the cursor:

void OnMouseMoveExplorerBar1(short Button, short Shift, long X, long Y)
{
    COleVariant vtEmpty; V_VT( &vtEmpty ) = VT_ERROR;
    m_explorerBar.ShowToolTip( m_explorerBar.GetAnchorFromPoint( -1, -1 ), vtEmpty, vtEmpty, vtEmpty );
}

The following VFP sample displays ( as tooltip ) the identifier of the anchor element from the cursor:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

with thisform
    With .ExplorerBar1
        .ShowToolTip(.AnchorFromPoint(-1, -1))
    EndWith
endwith


property Appearance

property ExplorerBar.Appearance as AppearanceEnum
Specifies the control's appearance.

Type | Description
AppearanceEnum | An AppearanceEnum expression that indicates the control's appearance, or a color expression whose last 7 bits in the high significant byte of the value indicates the index of the skin in the Appearance collection, being displayed as control's borders. For instance, if the Appearance = 0x1000000, indicates that the first skin object in the Appearance collection defines the control's border. The Client object in the skin, defines the client area of the control. The groups and the list of items are always shown in the control's client area. The skin may contain transparent objects, and so you can define round corners. The frame.ebn file contains such of objects. Use the eXButton's Skin builder to view or change this file

Use the Appearance property to specify the control's border. Use the GroupAppearance property to specify the appearance for the groups. Use the BackColorGroup and BackColorGroup2 properties to specify the background colors for the groups. Use the BackColor property to specify the control's background color. Use the ForeColor property to specify the control's foreground color. Use the Font property to specify the control's font. Use the Image property to assign a picture to an item. Use the Image property to assign a picture to a group.

The following VB sample changes the visual aspect of the borders of the control ( please check the above picture for round corners ):

With ExplorerBar1
    .BeginUpdate
        .VisualAppearance.Add &H16, "c:\temp\frame.ebn"
        .Appearance = &H16000000
        .BackColor = RGB(250, 250, 250)
    .EndUpdate
End With

The following VB.NET sample changes the visual aspect of the borders of the control:

With AxExplorerBar1
    .BeginUpdate()
    .VisualAppearance.Add(&H16, "c:\temp\frame.ebn")
    .Appearance = &H16000000
    .BackColor = Color.FromArgb(250, 250, 250)
    .EndUpdate()
End With

The following C# sample changes the visual aspect of the borders of the control:

axExplorerBar1.BeginUpdate();
axExplorerBar1.VisualAppearance.Add(0x16, "c:\\temp\\frame.ebn");
axExplorerBar1.Appearance = (EXEXPLORERBARLib.AppearanceEnum)0x16000000;
axExplorerBar1.BackColor = Color.FromArgb(250, 250, 250);
axExplorerBar1.EndUpdate();

The following C++ sample changes the visual aspect of the borders of the control:

m_explorerBar.BeginUpdate();
m_explorerBar.GetVisualAppearance().Add( 0x16, COleVariant( "c:\\temp\\frame.ebn" ) );
m_explorerBar.SetAppearance( 0x16000000 );
m_explorerBar.SetBackColor( RGB(250,250,250) );
m_explorerBar.EndUpdate();

The following VFP sample changes the visual aspect of the borders of the control:

with thisform.ExplorerBar1
    .BeginUpdate
        .VisualAppearance.Add(0x16, "c:\temp\frame.ebn")
        .Appearance = 0x16000000
        .BackColor = RGB(250, 250, 250)
    .EndUpdate
endwith


method AttachTemplate

method ExplorerBar.AttachTemplate (Template as Variant)
Attaches a script to the current object, including the events, from a string, file, a safe array of bytes.

Type | Description
Template as Variant | A string expression that specifies the Template to execute.
The AttachTemplate/x-script code is a simple way of calling control/object's properties, methods/events using strings. The AttachTemplate features allows you to attach a x-script code to the component. The AttachTemplate method executes x-script code ( including events ), from a string, file or a safe array of bytes. This feature allows you to run any x-script code for any configuration of the component /COM, /NET or /WPF. Exontrol owns the x-script implementation in its easiest form and it does not require any VB engine or whatever to get executed. The x-script code can be converted to several programming languages using the eXHelper tool.

The following sample opens the Windows Internet Explorer once the user clicks the control ( /COM version ):

AttachTemplate("handle Click(){ CreateObject(`internetexplorer.application`){ Visible = True; Navigate(`https://www.exontrol.com`) } } ")

This script is equivalent with the following VB code:

Private Sub ExplorerBar1_Click()
    With CreateObject("internetexplorer.application")
        .Visible = True
        .Navigate ("https://www.exontrol.com")
    End With
End Sub

The AttachTemplate/x-script syntax in BNF notation is defined like follows:

<x-script> := <lines>
<lines> := <line>[<eol> <lines>] | <block>
<block> := <call> [<eol>] { [<eol>] <lines> [<eol>] } [<eol>]
<eol> := ";" | "\r\n"
<line> := <dim> | <createobject> | <call> | <set> | <comment> | <handle>[<eol>]{[<eol>]<lines>[<eol>]}[<eol>]
<dim> := "DIM" <variables>
<variables> := <variable> [, <variables>]
<variable> := "ME" | <identifier>
<createobject> := "CREATEOBJECT(`"<type>"`)"
<call> := <variable> | <property> | <variable>"."<property> | <createobject>"."<property>
<property> := [<property>"."]<identifier>["("<parameters>")"]
<set> := <call> "=" <value>
<property> := <identifier> | <identifier>"("[<parameters>]")"
<parameters> := <value> [","<parameters>]
<value> := <boolean> | <number> | <color> | <date> | <string> | <createobject> | <call>
<boolean> := "TRUE" | "FALSE"
<number> := "0X"<hexa> | ["-"]<integer>["."<integer>]
<digit10> := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<digit16> := <digit10> | A | B | C | D | E | F
<integer> := <digit10>[<integer>]
<hexa> := <digit16>[<hexa>]
<color> := "RGB("<integer>","<integer>","<integer>")"
<date> := "#"<integer>"/"<integer>"/"<integer>" "[<integer>":"<integer>":"<integer>"]"#"
<string> := '"'<text>'"' | "`"<text>"`"
<comment> := "'"<text>
<handle> := "handle " <event>
<event> := <identifier>"("[<eparameters>]")"
<eparameters> := <eparameter> [","<eparameters>]
<parameters> := <identifier>

where:

<identifier> indicates an identifier of the variable, property, method or event, and should start with a letter.
<type> indicates the type the CreateObject function creates, as a progID for /COM version or the assembly-qualified name of the type to create for /NET or /WPF version
<text> any string of characters

The Template or x-script is composed by lines of instructions. Instructions are separated by "\n\r" ( newline characters ) or ";" character.

The advantage of the AttachTemplate relative to Template / ExecuteTemplate is that the AttachTemplate can add handlers to the control events.


property BackColor

property ExplorerBar.BackColor as Color
Retrieves or sets a value that indicates the control's background color.

Type | Description
Color | A color expression that indicates the control's background color.

Use the BackColor property to specify the control's background color. Use the BackColorGroup property to specify the default background color used to pain the groups captions. Use the BackColor property to specify the background color group's caption, Use the BackColorList property to specify the background color of the group's list. Use the BackColor property to specify the item's background color. Use the Picture property to specify the control's picture displayed on its background. Use the <bgcolor> built in HTML tag in the Caption property to define portions of text using a specified background color.


property BackColorGroup

property ExplorerBar.BackColorGroup as Color
Retrieves or sets a value that indicates the default group's background color.

Type | Description
Color | A color expression that indicates the group's background color. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.

Use the BackColorGroup property to specify the background color for all groups. Use the BackColorGroup2 property to specify the second background color when drawing the caption of group like a gradient. The BackColorGroup property changes only the background color for the captions. Use the BackColor, BackColorList property to change the background color for a specific group.

For instance, the following VB sample changes the visual appearance for group headers. The BackColorGroup property indicates the indicates the default group's background color. Shortly, we need to add a skin to the Appearance object using the Add method, and we need to set the last 7 bits in the BackColorGroup property to indicates the index of the skin that we want to use. The sample applies the " [image] " to the headers and the control looks like follows:

With ExplorerBar1
    .VisualAppearance.Add 1, "D:\Temp\ExplorerBar.Help\tabup2.ebn"
    .BackColorGroup = &H1000000
End With

The following C++ sample changes the visual appearance for group headers:

#include "Appearance.h"
m_explorerbar.GetVisualAppearance().Add( 1, COleVariant( "D:\\Temp\\ExplorerBar.Help\\tabup2.ebn" ) );
m_explorerbar.SetBackColorGroup( 0x1000000 );

The following VB.NET sample changes the visual appearance for group headers:

With AxExplorerBar1
    .VisualAppearance.Add(1, "D:\Temp\ExplorerBar.Help\tabup2.ebn")
    .Template = "BackColorGroup = 16777216"
End With

The following C# sample changes the visual appearance for group headers:

axExplorerBar1.VisualAppearance.Add(1, "D:\\Temp\\ExplorerBar.Help\\tabup2.ebn");
axExplorerBar1.Template = "BackColorGroup = 16777216";

The following VFP sample changes the visual appearance for group headers:

With thisform.ExplorerBar1
    .VisualAppearance.Add(1, "D:\Temp\ExplorerBar.Help\tabup2.ebn")
    .BackColorGroup = 16777216
EndWith

where the 16777216 value represents 0x1000000 in hexadecimal.


property BackColorGroup2

property ExplorerBar.BackColorGroup2 as Color
Specifies the color at the ending boundary line of the gradient group's caption.

Type | Description
Color | A color expression that specifies the color at the ending boundary line of the gradient group's caption.

Use the BackColorGroup and BackColorGroup2 properties to display the caption of the group using a gradient color. Use the BackColor, BackColorList property to change the background color for a specific group. Use the Font property to change the control's font.


property Background

property ExplorerBar.Background(Part as BackgroundPartEnum) as Color
Returns or sets a value that indicates the background color for parts in the control.

Type | Description
Part as BackgroundPartEnum | A BackgroundPartEnum expression that indicates a part in the control.
Color | A Color expression that indicates the background color for a specified part. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.
The Background property specifies a background color or a visual appearance for specific parts in the control. If the Background property is 0, the control draws the part as default. Use the Add method to add new skins to the control. Use the Remove method to remove a specific skin from the control. Use the Clear method to remove all skins in the control.

The following VB sample changes the visual appearance for the control's tooltip. The sample applies the skin " [image] " to control's tooltip.

With ExplorerBar1
    With .VisualAppearance
        .Add &H1, App.Path + "\frame.ebn"
    End With
    .Background(exToolTipAppearance) = &H1000000
End With

The following C++ sample changes the visual appearance for the control's tooltip:

#include "Appearance.h"
m_xplorerBar.GetVisualAppearance().Add( 0x01, COleVariant(_T("D:\\Temp\\ExplorerBar.Help\\frame.ebn")) );
m_xplorerBar.SetBackground( 0 /*exToolTipAppearance*/, 0x1000000 );

The following VB.NET sample changes the visual appearance for the control's tooltip:

With AxExplorerBar1
    With .VisualAppearance
        .Add(&H1, "D:\Temp\ExplorerBar.Help\frame.ebn")
    End With
    .set_Background(ExplorerBarLib.BackgroundPartEnum.exToolTipAppearance, &H1000000)
End With

The following C# sample changes the visual appearance for the control's tooltip:

axExplorerBar1.VisualAppearance.Add(0x1, "D:\\Temp\\ExplorerBar.Help\\frame.ebn");
axExplorerBar1.set_Background(ExplorerBarLib.BackgroundPartEnum.exToolTipAppearance, 0x1000000);

The following VFP sample changes the visual appearance for the control's tooltip:

With thisform.ExplorerBar1
    With .VisualAppearance
        .Add(1, "D:\Temp\ExplorerBar.Help\frame.ebn")
    EndWith
    .Object.Background(64) = 16777216
EndWith

The 16777216 value is the 0x1000000 value in hexadecimal.


method BeginUpdate

method ExplorerBar.BeginUpdate ()
Maintains performance when items are added to the control one at a time.

Type Description

Use the BeginUpdate and EndUpdate methods to maintain performance while adding multiple groups and items. Use the Refresh method to refresh the control's content. Use the Add method to add a new group to the control. Use the AddItem method to add new items to the group.

The following VB sample adds a group and two items:

With ExplorerBar1
    .BeginUpdate
    With .Groups.Add("Group 1")
        .AddItem "Item 1"
        .AddItem "Item 2"
    End With
    .EndUpdate
End With

The following C++ sample adds a group and two items:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
m_explorerbar.BeginUpdate();
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
CGroups groups = m_explorerbar.GetGroups();
CGroup group = groups.Add("Group 1");
group.AddItem( "Item 1", vtMissing );
group.AddItem( "Item 2", vtMissing );
m_explorerbar.EndUpdate();

The following VB.NET sample adds a group and two items:

With AxExplorerBar1
    .BeginUpdate()
    With .Groups.Add("Group 1")
        .AddItem("Item 1")
        .AddItem("Item 2")
    End With
    .EndUpdate()
End With

The following C# sample adds a group and two items:

axExplorerBar1.BeginUpdate();
EXPLORERBARLib.Group group = axExplorerBar1.Groups.Add("Group 1");
group.AddItem("Item 1", null);
group.AddItem("Item 2", null);
axExplorerBar1.EndUpdate();

The following VFP sample adds a group and two items:

With thisform.ExplorerBar1
    .BeginUpdate()
    With .Groups.Add("Group 1")
        .AddItem("Item 1")
        .AddItem("Item 2")
    EndWith
    .EndUpdate()
EndWith


property BorderGroupHeight

property ExplorerBar.BorderGroupHeight as Long
Specifies the height of the border between groups.

Type | Description
Long | A long expression that specifies the height of the border between groups.

By default the BorderGroupHeight property is 2 pixels. Use the BorderHeight property to specify the height of the control's border. Use the BorderWidth property to specify the width of the control's border. Use the BorderGroupHeight, BorderHeigth and BorderWidth properties to define the size of the groups inside the control's client area. The Left, Top, Width and Height properties determine the location of the group's list in client coordinates. The GroupHeight property specifies the height of the caption for all groups, in pixels. Use the ItemHeight property to specify height of the items in the group's list.


property BorderHeight

property ExplorerBar.BorderHeight as Long
Specifies the border's height.

Type | Description
Long | A long expression that indicates the border's height.

By default, the BorderHeight property is 2 pixels. Use the BorderWidth property to specify the width of the control's border. Use the BorderGroupHeight property to specify the distance between two groups, in pixels. Use the BorderGroupHeight, BorderHeigth and BorderWidth properties to define the size of the groups inside the control's client area. The Left, Top, Width and Height properties determine the location of the group's list in client coordinates.


property BorderWidth

property ExplorerBar.BorderWidth as Long
Specifies the border's width.

Type | Description
Long | A long expression that indicates the border's width

By default, the BorderWidth property is 2 pixels. Use the BorderHeight property to specify the height of the control's border. Use the BorderGroupHeight property to specify the distance between two groups, in pixels. Use the BorderGroupHeight, BorderHeigth and BorderWidth properties to define the size of the groups inside the control's client area. The Left, Top, Width and Height properties determine the location of the group's list in client coordinates.


property DelayScroll

property ExplorerBar.DelayScroll as Long
Specifies the delay used when the user selects a group.

Type | Description
Long | A long expression that indicates the delay used by the control when a new group is selected. The valid values are 0 to 100. 0 means no scrolling.

By default, the DelayScroll property is 50. Use the DelayScroll property to stop scrolling groups when the selection is changed. The control fires the ExpandGroup event when user clicks the group's caption. The Expanded property specifies whether the group is expanded or collapsed. When a group is collapsed, it shows no items. When the group is expanded, all visible items are shown. Use the BackColorList property to specify the background color for the group's list. Use the BackColor property to specify the background color for the group's caption. Use the AllowScroll property to specify whether the group is scrolled smoothly until all items are visible when the user clicks the group's caption.


property DisplayExpandIcon

property ExplorerBar.DisplayExpandIcon as Boolean
Specifies whether the control displays the expand icon on the group's caption.

Type | Description
Boolean | A boolean expression that specifies whether the control displays the expand icon on the group's caption.

By default, the DisplayExpandIcon property is True. Use the DisplayExpandIcon property to hide the icon in the group caption that indicates whether a group is expanded or collasped. Use the ExpandIcon property to specify the icons used for expanded/collased groups. Use the Expanded property to expand a group. The control fires the ExpandGroup event when the user clicks the group's caption. Use the Caption property to specify the caption of the group. Use the ExpandOnClick property to specify whether the user can expand or collapse the groups by clicking the caption of the group.


property Enabled

property ExplorerBar.Enabled as Boolean
Enables or disables the control.

Type | Description
Boolean | A boolean expression that indicates whether the control is enabled or disabled.

Use the Enabled property to disable the control. The Enabled property does not change the control's appearance. Use the BackColor property to specify the control's background color. Use the BackColorGroup property to specify the background color for captions of the groups. Use the ForeColor property to specify the control's foreground color. Use the ForeColorGroup property to specify the foreground color for captions of the groups. Use the DisplayExpandButton property to hide the expand/collapse icons. Use the ExpandIcon property to change the expand/collapse icons.

The following VB sample disables the control and changes the control's appearance:

With ExplorerBar1
    .BeginUpdate
    .Enabled = False
    .ForeColor = SystemColorConstants.vbGrayText
    .ForeColorGroup = .ForeColor
    .DisplayExpandIcon = False
    .EndUpdate
End With

The following C++ sample disables the control and changes the control's appearance:

m_explorerbar.BeginUpdate();
m_explorerbar.SetEnabled( FALSE );
m_explorerbar.SetForeColor( 0x80000000 | COLOR_GRAYTEXT );
m_explorerbar.SetForeColorGroup( m_explorerbar.GetForeColor() );
m_explorerbar.SetDisplayExpandIcon( FALSE );
m_explorerbar.EndUpdate();

The following VB.NET sample disables the control and changes the control's appearance:

With AxExplorerBar1
    .BeginUpdate()
    .Enabled = False
    .ForeColor = Color.Gray
    .ForeColorGroup = .ForeColor
    .DisplayExpandIcon = False
    .EndUpdate()
End With

The following C# sample disables the control and changes the control's appearance:

axExplorerBar1.BeginUpdate();
axExplorerBar1.Enabled = false;
axExplorerBar1.ForeColorGroup = axExplorerBar1.ForeColor = Color.Gray;
axExplorerBar1.DisplayExpandIcon = false;
axExplorerBar1.EndUpdate();

The following VFP sample disables the control and changes the control's appearance:

With thisform.ExplorerBar1
    .BeginUpdate()
    .Object.Enabled = .f.
    .ForeColor = RGB(128,128,128)
    .ForeColorGroup = .ForeColor
    .DisplayExpandIcon = .f.
    .EndUpdate()
EndWith


method EndUpdate

method ExplorerBar.EndUpdate ()
Resumes painting the control after painting is suspended by the BeginUpdate method.

Type Description

Use the BeginUpdate and EndUpdate methods to maintain performance while adding multiple groups and items. Use the Refresh method to refresh the control's content. Use the Add method to add a new group to the control. Use the AddItem method to add new items to the group.

The following VB sample adds a group and two items:

With ExplorerBar1
    .BeginUpdate
    With .Groups.Add("Group 1")
        .AddItem "Item 1"
        .AddItem "Item 2"
    End With
    .EndUpdate
End With

The following C++ sample adds a group and two items:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
m_explorerbar.BeginUpdate();
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
CGroups groups = m_explorerbar.GetGroups();
CGroup group = groups.Add("Group 1");
group.AddItem( "Item 1", vtMissing );
group.AddItem( "Item 2", vtMissing );
m_explorerbar.EndUpdate();

The following VB.NET sample adds a group and two items:

With AxExplorerBar1
    .BeginUpdate()
    With .Groups.Add("Group 1")
        .AddItem("Item 1")
        .AddItem("Item 2")
    End With
    .EndUpdate()
End With

The following C# sample adds a group and two items:

axExplorerBar1.BeginUpdate();
EXPLORERBARLib.Group group = axExplorerBar1.Groups.Add("Group 1");
group.AddItem("Item 1", null);
group.AddItem("Item 2", null);
axExplorerBar1.EndUpdate();

The following VFP sample adds a group and two items:

With thisform.ExplorerBar1
    .BeginUpdate()
    With .Groups.Add("Group 1")
        .AddItem("Item 1")
        .AddItem("Item 2")
    EndWith
    .EndUpdate()
EndWith


method EnsureVisible

method ExplorerBar.EnsureVisible ([Group as Variant], [Item as Variant], [Force as Variant])
Ensures that the specified group or item fits the control's client area.

Type | Description
Group as Variant | A Long expression that specifies the index of the group to be scrolled so it fits the control's client area. The Index property specifies the index of the group being scrolled.
Item as Variant | A Long expression that specifies the index of the item in the group to be scrolled so it fits the control's client area. The Index property specifies the index of the item being scrolled.
Force as Variant | A Boolean expression that specifies whether the control expands the group, so the item is visible, or whether the a new shortcut is selected so the group becomes visible. The Force parameter does NOT change the Visible property of the item. By default, the Force parameter is True, if missing.
The EsnureVisible method scrolls the control's content so the specified group or item fits the control's area. Use the EnsureVisible method to automatically scrolls to the end of the group where a new item where inserted. If the Item parameter is missing or -1, the EnsureVisible method ensures that the group being specified fits the control's client area. The Item parameter indicates the index of the item in the giving group. The EnsureVisible method selects a new shortcut, or expands a group, if case and the Force parameter is True. If the Force parameter is False, the control does not selects a new shortcut, in case the specified group does not belong to the selected group, and does not expand a group, in case the specified item belong to that group.

The following VB sample adds a new item to the last group, and ensures that the newly item is visible:

With ExplorerBar1
    .BeginUpdate
    .EnsureVisible .Groups.Count - 1, .Groups(.Groups.Count - 1).AddItem("new item").Index
    .EndUpdate
End With


property EventParam

property ExplorerBar.EventParam(Parameter as Long) as Variant
Retrieves or sets a value that indicates the current's event parameter.

Type | Description
Parameter as Long | A long expression that indicates the index of the parameter being requested ie 0 means the first parameter, 1 means the second, and so on. If -1 is used the EventParam property retrieves the number of parameters. Accessing an not-existing parameter produces an OLE error, such as invalid pointer ( E_POINTER )
Variant | A VARIANT expression that specifies the parameter's value.
The EventParam method is provided to allow changing the event's parameters passed by reference, even if your environment does not support changing it ( uniPaas 1.5 (formerly known as eDeveloper), DBase, and so on ). For instance, Unipaas event-handling logic cannot update ActiveX control variables by updating the received arguments. The EventParam(0) retrieves the value of the first parameter of the event, while the EventParam(1) = 0, changes the value of the second parameter to 0 ( the operation is successfully, only if the parameter is passed by reference ). The EventParam(-1) retrieves the number of the parameters of the current event.

Let's take the event "event KeyDown (KeyCode as Integer, ByVal Shift as Integer)", where the KeyCode parameter is passed by reference. For instance, put the KeyCode parameter on 0, and the arrow keys are disabled while the control has the focus.

In most languages you will type something like:

Private Sub Control1_KeyDown(KeyCode As Integer, Shift As Integer)
    KeyCode = 0
End Sub

In case your environment does not support events with parameters by reference, you can use a code like follows:

Private Sub Control1_KeyDown(KeyCode As Integer, Shift As Integer)
    Control1.EventParam(0) = 0
End Sub

In other words, the EventParam property provides the parameters of the current event for reading or writing access, even if your environment does not allow changing parameters by reference.

Calling the EventParam property outside of an event produces an OLE error, such as pointer invalid, as its scope was designed to be used only during events.


method ExecuteTemplate

method ExplorerBar.ExecuteTemplate (Template as String)
Executes a template and returns the result.

Type | Description
Template as String | A Template string being executed
Return | Description
Variant | A Variant expression that indicates the result after executing the Template.
Use the ExecuteTemplate property to returns the result of executing a template file. Use the Template property to execute a template without returning any result. Use the ExecuteTemplate property to execute code by passing instructions as a string ( template string ).

For instance, the following sample retrieves the control's background color:

Debug.Print ExplorerBar1.ExecuteTemplate("BackColor")

Most of our UI components provide a Template page that's accessible in design mode. No matter what programming language you are using, you can have a quick view of the component's features using the WYSWYG Template editor.

  • Place the control to your form or dialog.
  • Locate the Properties item, in the control's context menu, in design mode. If your environment doesn't provide a Properties item in the control's context menu, please try to locate in the Properties browser.
  • Click it, and locate the Template page.
  • Click the Help button. In the left side, you will see the component, in the right side, you will see a x-script code that calls methods and properties of the control.

The control's Template page helps user to initialize the control's look and feel in design mode, using the x-script language that's easy and powerful. The Template page displays the control on the left side of the page. On the right side of the Template page, a simple editor is displayed where user writes the initialization code. The control's look and feel is automatically updated as soon as the user types new instructions. The Template script is saved to the container persistence ( when Apply button is pressed ), and it is executed when the control is initialized at runtime. Any component that provides a WYSWYG Template page, provides a Template property. The Template property executes code from a string ( template string ).

The Template script is composed by lines of instructions. Instructions are separated by "\n\r" ( newline ) characters.

An instruction can be one of the following:

  • Dim list of variables Declares the variables. Multiple variables are separated by commas. ( Sample: Dim h, h1, h2 )
  • variable = property( list of arguments ) Assigns the result of the property to a variable. The "variable" is the name of a declared variable. The "property" is the property name of the object in the context. The "list or arguments" may include variables or values separated by commas. ( Sample: h = InsertItem(0,"New Child") )
  • property( list of arguments ) = value Changes the property. The value can be a variable, a string, a number, a boolean value or a RGB value.
  • method( list of arguments ) Invokes the method. The "list or arguments" may include variables or values separated by commas.
  • { Beginning the object's context. The properties or methods called between { and } are related to the last object returned by the property prior to { declaration.
  • } Ending the object's context
  • object. property( list of arguments ).property( list of arguments ).... The .(dot) character splits the object from its property. For instance, the Columns.Add("Column1").HeaderBackColor = RGB(255,0,0), adds a new column and changes the column's header back color.

The Template supports the following general functions:

  • RGB(R,G,B) property retrieves an RGB value, where the R, G, B are byte values that indicates the R G B values for the color being specified. For instance, the following code changes the control's background color to red: BackColor = RGB(255,0,0)
  • CreateObject(progID) property creates and retrieves a single uninitialized object of the class associated with a specified program identifier.


property ExpandIcon

property ExplorerBar.ExpandIcon(Expanded as Boolean) as Long
Retrieves or sets the index of the icon used to paint the expand button.

Type | Description
Expanded as Boolean | A boolean expression that indicates the state of the icon being changed. True means expanded, false means collapsed.
Long | A long expression that indicates the index of icon used.

Use the ExpandIcon property to change the icon being displaye in the right side of the group's caption when the group is expanded or collapsed. Use the DisplayExpandIcon property to hide the expanded/collapsed icon. Use the Images method to add icons to the control. Use the ReplaceIcon method to update the list of icons. Use the Expanded property to expand a group. The control fires the ExpandGroup event when the user clicks the group's caption. Use the Caption property to specify the caption of the group.


property ExpandOnClick

property ExplorerBar.ExpandOnClick as Boolean
Expands the group when its caption is clicked.

Type | Description
Boolean | A boolean expression that indicates whether the control expands or collapses the group when the group's caption is clicked.

Use the ExpandOnClick property to specify whether the control expands or collapses when the user clicks the group's caption. Use the DisplayExpandIcon property to show or hide the expand/collapse icons. Use the ExpandIcon property to specify the icons used for expanded/collapsed groups. Use the Expanded property to expand a group. The control fires the ExpandGroup event when the user clicks the group's caption. The control fires the SelectGroup event when the user clicks the caption of the group. Use the Caption property to specify the caption of the group. Use the AllowExpand property to disable expanding or collapsing a group.


property ExpandShortcutCount

property ExplorerBar.ExpandShortcutCount as Long
Retrieves or sets a value that indicates the number of shortcuts being expanded.

Type | Description
Long | A long expression that indicates the number of shortcuts that display their full caption.
By default, the ExpandShortcutCount property is 0. The ExpandShortcutCount property is changed when the user resizes the shortcut bar. Use the ShowShortcutBar property to show or hide the control's shortcut bar. Use the AllowResizeShortcutBar property to enable or disable resizing the shortcut bar. Use the ExpandShortcutImage property to hide the expand button in the control's shortcut bar, or to change the icon of the expand button in the shortcut bar. The Shortcut property indicates the HTML caption of the shortcut that displays the specified group. Groups with the same Shortcut property are displayed in the same shortcut.


property ExpandShortcutImage

property ExplorerBar.ExpandShortcutImage as Long
Retrieves or sets a value that indicates the index of the image being displayed to expand the shortcuts.

Type | Description
Long | A Long expression that indicates the index of the icon being used to display the expand button in the control's shortcut bar.
By default, The ExpandShortcutImage property is 0. If the ExpandShortcutImage property is 0, the control displays the default icon to show the expand button in the shortcut bar. If the ExpandShortcutImage property is greater than 0, it indicates the index of the icon being used to display the expand button. The Images method assigns a collection of icons to the control. The expand button in the shortcut bar is hidden, if the ExpandShortcutImage property is -1. Use the AllowResizeShortcutBar property to enable or disable resizing the shortcut bar. Use the ExpandShortcutCount property to specify the number of shortcuts being expanded. An expanded shortcut displays its full caption, as Shortcut property specifies.


property Font

property ExplorerBar.Font as IFontDisp
Retrieves or sets the control's font.

Type | Description
IFontDisp | A Font object that specifies the control's font.

Use the Font property to specify the control's font. Use the Bold, Italic, Underline or StrikeOut property to define the font for caption of the group. Use the Caption property to define the caption of the group. Use the Bold, Italic, Underline or StrikeOut property to define the font for caption of the item. Use the Caption property to define the caption of the item. Use the Refresh method to refresh the control. The GroupHeight property specifies the height of the caption for all groups, in pixels. Use the ItemHeight property to specify height of the items in the group's list.

The following VB sample changes by code a new font to the control:

With ExplorerBar1
    With .Font
        .Name = "Tahoma"
    End With
    .Refresh
End With

The following C++ sample changes by code a new font to the control:

COleFont font = m_explorerbar.GetFont();
font.SetName( "Tahoma" );
m_explorerbar.Refresh();

the C++ sample requires definition of COleFont class ( #include "Font.h" )

The following VB.NET sample changes by code a new font to the control:

With AxExplorerBar1
    Dim font As System.Drawing.Font = New System.Drawing.Font("Tahoma", 10, FontStyle.Regular, GraphicsUnit.Point)
    .Font = font
    .CtlRefresh()
End With

The following C# sample changes by code a new font to the control:

System.Drawing.Font font = new System.Drawing.Font("Tahoma", 10, FontStyle.Regular);
axExplorerBar1.Font = font;
axExplorerBar1.CtlRefresh();

The following VFP sample changes by code a new font to the control:

with thisform.ExplorerBar1.Object
    .Font.Name = "Tahoma"
    .Refresh()
endwith

The following Template sample changes by code a new font to the control:

Font
{
    Name = "Tahoma"
}


property ForeColor

property ExplorerBar.ForeColor as Color
Retrieves or sets a value that indicates the control's foreground color.

Type | Description
Color | A color expression that indicates the control's foreground color.

Use the ForeColor property to specify the control's foreground color. Use the ForeColorGroup property to specify the default foreground color used to paint the groups captions. Use the ForeColor property to specify the foreground color for group's caption, Use the ForeColorList property to specify the foreground color of the group's list. Use the ForeColor property to specify the item's foreground color. Use the <fgcolor> built in HTML tag in the Caption property to define portions of text using a specified foreground color.


property ForeColorGroup

property ExplorerBar.ForeColorGroup as Color
Retrieves or sets a value that indicates the default group's foreground color.

Type | Description
Color | A color expression that indicates the default foreground color for group captions.

Use the ForeColorGroup property to specify the foreground color for all groups. The ForeColorGroup property changes only the foreground color of group captions. Use the ForeColor, ForeColorList property to change the foreground color for a specific group. Use the <fgcolor> built in HTML tag in the Caption property to define portions of text using a specified foreground color.


property FormatAnchor

property ExplorerBar.FormatAnchor(New as Boolean) as String
Specifies the visual effect for anchor elements in HTML captions.

Type | Description
New as Boolean | A Boolean expression that indicates whether to specify the anchors never clicked or anchors being clicked.
String | A String expression that indicates the HTMLformat to apply to anchor elements.
By default, the FormatAnchor(True) property is "<u><fgcolor=0000FF>#" that indicates that the anchor elements ( that were never clicked ) are underlined and shown in light blue. Also, the FormatAnchor(False) property is "<u><fgcolor=000080>#" that indicates that the anchor elements are underlined and shown in dark blue. The visual effect is applied to the anchor elements, if the FormatAnchor property is not empty. For instance, if you want to do not show with a new effect the clicked anchor elements, you can use the FormatAnchor(False) = "", that means that the clicked or not-clicked anchors are shown with the same effect that's specified by FormatAnchor(True). An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link. The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The control fires the AnchorClick event to notify that the user clicks an anchor element. This event is fired only if prior clicking the control it shows the hand cursor. The AnchorClick event carries the identifier of the anchor, as well as application options that you can specify in the anchor element. The hand cursor is shown when the user hovers the mouse on the anchor elements.


property GroupAppearance

property ExplorerBar.GroupAppearance as AppearanceEnum
Specifies the group's appearance.

Type | Description
AppearanceEnum | An AppearaceEnum expression that indicates the group's appearance.

Use the GroupAppearance to specify the group's appearance. Use the BackColorGroup and BackColorGroup2 properties to specify the background colors for the groups. Use the BackColor property to specify the control's background color. Use the ForeColor property to specify the control's foreground color. Use the Font property to specify the control's font.


property GroupFromPoint

property ExplorerBar.GroupFromPoint (X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS) as Group
Gets the group from point.

Type | Description
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates
Y as OLE_YPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates
Group | A Group object over the point ( X, Y ).

Use the GroupFromPoint property to get the group over cursor. Use the ItemFromPoint property to retrieve the item over cursor. Use the Caption property to specify the caption of the group. Use the Expanded property to specify whether a group is expanded or collapsed.

The following VB sample displays the caption of the group from the cursor:

Private Sub ExplorerBar1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim g As Group
        Set g = .GroupFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not g Is Nothing Then
            Debug.Print g.Caption
        End If
    End With
End Sub

The following C++ sample displays the caption of the group from the cursor:

void OnMouseMoveExplorerbar1(short Button, short Shift, long X, long Y)
{
    CGroup group = m_explorerbar.GetGroupFromPoint( X, Y );
    if ( group.m_lpDispatch != NULL )
        OutputDebugString( group.GetCaption() );
}

The following VB.NET sample displays the caption of the group from the cursor:

Private Sub AxExplorerBar1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim g As EXPLORERBARLib.Group = .get_GroupFromPoint(e.x, e.y)
        If Not g Is Nothing Then
            Debug.WriteLine(g.Caption)
        End If
    End With
End Sub

The following C# sample displays the caption of the group from the cursor:

private void axExplorerBar1_MouseMoveEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent e)
{
    EXPLORERBARLib.Group g = axExplorerBar1.get_GroupFromPoint(e.x, e.y);
    if (g != null)
        System.Diagnostics.Debug.WriteLine(g.Caption);
}

The following VFP sample displays the caption of the group from the cursor:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local g
    g = .GroupFromPoint(x , y)
    If !isnull(g)
    with g
            wait window nowait .Caption
       endwith
    EndIf
EndWith


property GroupHeight

property ExplorerBar.GroupHeight as Long
Specifies the group's height.

Type | Description
Long | A long expression that indicates the height of group's caption.

By default, the GroupHeight property is 22 pixels. The GroupHeight property specifies the height of the caption for all groups, in pixels. Use the BorderGroupHeight, BorderHeight and BorderWidth properties to define the size of the groups inside the control's client area. Use the Font property to specify the control's font. Use the ItemHeight property to specify height of the items in the group's list. The Left, Top, Width and Height properties determine the location of the group's list in client coordinates.


property Groups

property ExplorerBar.Groups as Groups
Retrieves the control's groups collection.

Type | Description
Groups | A Groups object that indicates the control's groups collection.

Use the Groups property to access the control's groups collection. Use the Add method property to add new groups to the control. Use the AddItem method to add new items to the group. Use the BeginUpdate and EndUpdate methods to maintain performance while adding new groups or new items. Use the Font property to specify the control's font. Use the GroupHeight property to specify the height of the captions for all groups. Use the ItemHeight property to specify height of the items in the group's list.

The following VB sample adds two groups and two items to each group:

With ExplorerBar1
    .BeginUpdate
    With .Groups
        With .Add("Group 1")
            .AddItem "Item 1"
            .AddItem "Item 2"
        End With
        With .Add("Group 2")
            .AddItem "Item 1"
            .AddItem "Item 2"
        End With
    End With
    .EndUpdate
End With

The following C++ sample adds two groups and two items to each group:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
m_explorerbar.BeginUpdate();
CGroups groups = m_explorerbar.GetGroups();
CGroup group1 = groups.Add( "Group 1" );
group1.AddItem( "Item 1", vtMissing );
group1.AddItem( "Item 2", vtMissing );
CGroup group2 = groups.Add( "Group 2" );
group2.AddItem( "Item 1", vtMissing );
group2.AddItem( "Item 2", vtMissing );
m_explorerbar.EndUpdate();

The following VB.NET sample adds two groups and two items to each group:

With AxExplorerBar1
    .BeginUpdate()
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1")
            .AddItem("Item 2")
        End With
        With .Add("Group 2")
            .AddItem("Item 1")
            .AddItem("Item 2")
        End With
    End With
    .EndUpdate()
End With

The following C# sample adds two groups and two items to each group:

axExplorerBar1.BeginUpdate();
EXPLORERBARLib.Group group1 = axExplorerBar1.Groups.Add("Group 1");
group1.AddItem("Item 1", null);
group1.AddItem("Item 2", null);
EXPLORERBARLib.Group group2 = axExplorerBar1.Groups.Add("Group 2");
group2.AddItem("Item 1", null);
group2.AddItem("Item 2", null);
axExplorerBar1.EndUpdate();

The following VFP sample adds two groups and two items to each group:

With thisform.ExplorerBar1
    .BeginUpdate()
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1")
            .AddItem("Item 2")
        EndWith
        With .Add("Group 2")
            .AddItem("Item 1")
            .AddItem("Item 2")
        EndWith
    EndWith
    .EndUpdate()
EndWith


property HandCursor

property ExplorerBar.HandCursor as Boolean
Specifies whether the control uses the hand cursor when the mouse is over the item.

Type | Description
Boolean | A boolean expression that specifies whether the control uses the hand cursor when the mouse is over the item.

By default, the HandCursor property is True. Use the HandCursor property to show the hand cursor when the cursor hovers the item. Use the HighlightItemType property to specify the way how the control highlight an item. The HandCursor property has effect only if the HighlightItemType property is exHyperLink. Use the HyperLinkColor property to specify the foreground color when the cursor hovers the item.


property HighlightItemType

property ExplorerBar.HighlightItemType as HighLightItemEnum
Specifies the way how the control highlights the item.

Type | Description
HighLightItemEnum | A HighLightItemEnum expression that indicates the way how control marks the highlighted item.

Use the HighlightItemType property to specify the way how the control marks the highlighted item. If the HighlightItem property is exNoHighlight the item from the cursor is not marked at all. Use the ForeColor property to specify the item's foreground color. Use the Underline property to underline an item. Use the ItemFromPoint property to retrieve the item from point. Use the HandCursor property to show the hand cursor when the cursor hovers the item. The control fires the HighLightItem event when the cursor hovers an item. Use the HyperLinkColor property to specify the foreground color when the cursor hovers the item. Use the AllowHighLight property to avoid highlighting an item when the cursor hovers it.


property HTMLPicture

property ExplorerBar.HTMLPicture(Key as String) as Variant
Adds or replaces a picture in HTML captions.

Type | Description
Key as String | A String expression that indicates the key of the picture being added or replaced. If the Key property is Empty string, the entire collection of pictures is cleared.
Variant The HTMLPicture specifies the picture being associated to a key. It can be one of the followings:
  • a string expression that indicates the path to the picture file, being loaded.
  • a string expression that indicates the base64 encoded string that holds a picture object, Use the eximages tool to save your picture as base64 encoded format.
  • A Picture object that indicates the picture being added or replaced. ( A Picture object implements IPicture interface ),

If empty, the picture being associated to a key is removed. If the key already exists the new picture is replaced. If the key is not empty, and it doesn't not exist a new picture is added

The HTMLPicture property handles a collection of custom size picture being displayed in the HTML captions, using the <img> tags. By default, the HTMLPicture collection is empty. Use the HTMLPicture property to add new pictures to be used in HTML captions. For instance, the HTMLPicture("pic1") = "c:\winnt\zapotec.bmp", loads the zapotec picture and associates the pic1 key to it. Any "<img>pic1</img>" sequence in HTML captions, displays the pic1 picture. On return, the HTMLPicture property retrieves a Picture object ( this implements the IPictureDisp interface ).

The following sample shows how to put a custom size picture in the column's header:

<CONTROL>.HTMLPicture("pic1") = "c:/temp/editors.gif"
<CONTROL>.HTMLPicture("pic2") = "c:/temp/editpaste.gif"


property hWnd

property ExplorerBar.hWnd as Long
Retrieves the handle of the control's window.

Type | Description
Long | A long expression that indicates the handle of the control's window.

The Microsoft Windows operating environment identifies each form and control in an application by assigning it a handle, or hWnd. The hWnd property is used with Windows API calls. Many Windows operating environment functions require the hWnd of the active window as an argument.


property HyperLinkColor

property ExplorerBar.HyperLinkColor as Color
Specifies the hyperlink color.

Type | Description
Color | A color expression that indicates the hyperlink color.

The HyperLinkColor property specifies the foreground color for item from the cursor. The HyperLinkColor property is valid only if the HighlightItemType property is exHyperLink. Use the ForeColor property to specify the item's foreground color. Use the Underline property to underline an item. Use the ItemFromPoint property to specify the item from the cursor. Use the GroupFromPoint property to retrieve the group from the cursor. Use the AllowHighLight property to avoid highlighting an item when the cursor hovers it.


method Images

method ExplorerBar.Images (Handle as Variant)
Sets the control's handle image list.

Type Description
Handle as Variant The Handle parameter can be:
  • A string expression that specifies the ICO file to add. The ICO file format is an image file format for computer icons in Microsoft Windows. ICO files contain one or more small images at multiple sizes and color depths, such that they may be scaled appropriately. For instance, Images("c:\temp\copy.ico") method adds the sync.ico file to the control's Images collection (string, loads the icon using its path)
  • A string expression that indicates the BASE64 encoded string that holds the icons list. Use the Exontrol's ExImages tool to save/load your icons as BASE64 encoded format. In this case the string may begin with "gBJJ..." (string, loads icons using base64 encoded string)
  • A reference to a Microsoft ImageList control (mscomctl.ocx, MSComctlLib.ImageList type) that holds the icons to add (object, loads icons from a Microsoft ImageList control)
  • A reference to a Picture (IPictureDisp implementation) that holds the icon to add. For instance, the VB's LoadPicture (Function LoadPicture([FileName], [Size], [ColorDepth], [X], [Y]) As IPictureDisp) or LoadResPicture (Function LoadResPicture(id, restype As Integer) As IPictureDisp) returns a picture object (object, loads icon from a Picture object)
  • A long expression that identifies a handle to an Image List Control ( the Handle should be of HIMAGELIST type ). On 64-bit platforms, the Handle parameter must be a Variant of LongLong / LONG_PTR data type ( signed 64-bit (8-byte) integers ), saved under llVal field, as VT_I8 type. The LONGLONG / LONG_PTR is __int64, a 64-bit integer. For instance, in C++ you can use as Images( COleVariant( (LONG_PTR)hImageList) ) or Images( COleVariant( (LONGLONG)hImageList) ), where hImageList is of HIMAGELIST type. The GetSafeHandle() method of the CImageList gets the HIMAGELIST handle (long, loads icon from HIMAGELIST type)

The control provides an image list window, that's displayed at design time. Use the ShowImageList property to hide the image list window, at design time. At design time, the user can add new icons to the control's Images collection, by dragging icon files, exe files, etc, to the images list window. At runtime, the user can use the Images and ReplaceIcon method to change the Images collection. Use the Image property to assign a picture to a group. Use the Image property to assign a picture to an item. Use the SmallIcons property to specify the size of the icons being displayed. Use the <img> HTML tag to insert icons inside the cell's caption, if the CaptionFormat property is exHTML. For instance, the "some image <img>1</img> other image <img>2</img> rest of text", displays combined text and icons in the item's caption.

The following VB sample uses the Microsoft Image List control:

ExplorerBar1.Images ImageList1.hImageList

The following VB sample loads a collection of icons from a BASE64 encoded string:

With ExplorerBar1
    Dim s As String
    s = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF"
    s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg="
    .BeginUpdate
    .Images s
    With .Groups
        With .Add("Group 1")
            .AddItem "Item 1", 1
            .AddItem "Item 2", 2
        End With
        With .Add("Group 2")
            .AddItem "Item 1", 2
            .AddItem "Item 2", 1
        End With
    End With
    .EndUpdate
End With

The following C++ sample loads a collection of icons from a BASE64 encoded string:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
CString s("gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF");
s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg=";
m_explorerbar.BeginUpdate();
CGroups groups = m_explorerbar.GetGroups();
m_explorerbar.Images(COleVariant(s));
CGroup group1 = groups.Add( "Group 1" );
group1.AddItem( "Item 1", COleVariant(long(1)) );
group1.AddItem( "Item 2", COleVariant(long(2)) );
CGroup group2 = groups.Add( "Group 2" );
group2.AddItem( "Item 1", COleVariant(long(3)) );
group2.AddItem( "Item 2", COleVariant(long(4)) );
m_explorerbar.EndUpdate();

The following VB.NET sample loads a collection of icons from a BASE64 encoded string:

With AxExplorerBar1
    Dim s As String = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF"
    s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg="
    .BeginUpdate()
    .Images(s)
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1", 1)
            .AddItem("Item 2", 2)
        End With
        With .Add("Group 2")
            .AddItem("Item 1", 3)
            .AddItem("Item 2", 4)
        End With
    End With
    .EndUpdate()
End With

The following C# sample loads a collection of icons from a BASE64 encoded string:

String s= "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF";
s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg=";
axExplorerBar1.BeginUpdate();
axExplorerBar1.Images(s);
EXPLORERBARLib.Group group1 = axExplorerBar1.Groups.Add("Group 1");
group1.AddItem("Item 1", 1);
group1.AddItem("Item 2", 2);
EXPLORERBARLib.Group group2 = axExplorerBar1.Groups.Add("Group 2");
group2.AddItem("Item 1", 3);
group2.AddItem("Item 2", 4);
axExplorerBar1.EndUpdate();

The following VFP sample loads a collection of icons from a BASE64 encoded string:

With thisform.ExplorerBar1
    local s
    .BeginUpdate()
       s = "gBJJgBAIEAAJAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaGEaAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwm"
    s = s + "Fw2HxGJxWLxmNx2PyGRyWTymVy2XzGZzWbzmdz2f0Gh0Wj0ml02npqAQEZ1WojWq1bA2VWh9e2TAiUO3L/AGtp++jW12tl2uwAG34+z5FJ4W65u8l26ou+5+75O45HA6er43D53f6FY6vG5HZ1vk2e08NH5G18vK+G47u67U7+fQ3XL8EZ/dN6rivPALYtnAEBuw9KaO"
    s = s + "Gjb8wQ4L1us7zeQUmbqP29z4uu3rWv++jVwo7kKus3MNRA1cOQk6SgRPEkMwu3EXRY97cJrCcRQXB7jPvCEUpm9sGQPIEMx1FcZJc40RxhI79xzEMVxpC0OwM60fN5KkhQEmTqpRFMPQdFEvxZJEeSND0iQw80TP3IsipbHUxPw3kmTTMD0RnMaYxXOrrN830rStLSYU"
    s = s + "A/koxFKE6Q3O6WT9M8MSHQ0MuXQLpSXLE3xZJUwJy8bW0W+UPT7DEnUlMEa0xHdM0fI8EzVRlPTnKcGp2/tZzjLEIwzEdNUJNdG0/X1B1JRKX1EsdN1fY1IQwm1aULQ8S0GoVeSDIs+TK/rXy6nEV23YSpWRbkq1jJ84WbcsaqLaVk081lspXaqf3AsUC1Ol1IxVVFMq"
    s = s + "pdLzXZfsNX8+qfUEs2Bxg5lJwerN7Jld7LWIz2Atc0qLB8lmKo8kCRJIACSo2QGO11hOJM2hx5oefw/nmd5wH+SZ/n4D54GecAfkAf58AOcAHmAB5AB+eAAnAAJgAGQAHnA44Aw8AbsaUjOnY+jQBtYkqSgPjmOajq+p6GkoHgBouYuPnYE5ofwAHhsR8B+3mYH4HOUH"
    s = s + "+YJ/7YPaHnGiaAg="
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1",1)
            .AddItem("Item 2",2)
        EndWith
        With .Add("Group 2")
            .AddItem("Item 1",3)
            .AddItem("Item 2",4)
        EndWith
    EndWith
    .EndUpdate()
EndWith

The following Template sample loads a collection of icons from a BASE64 encoded string:

BeginUpdate
Images("gBJJgBAIEAAJAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaGEaAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx2PyGRyWTymVy2XzGZzWbzmdz2f0Gh0Wj0ml02npqAQEZ1WojWq1bA2VWh9e2TAiUO3L/AGtp++jW12tl2uwAG34+z5FJ4W65u8l26ou+5+75O45HA6er43D53f6FY6vG5HZ1vk2e08NH5G18vK+G47u67U7+fQ3XL8EZ/dN6rivPALYtnAEBuw9KaOGjb8wQ4L1us7zeQUmbqP29z4uu3rWv++jVwo7kKus3MNRA1cOQk6SgRPEkMwu3EXRY97cJrCcRQXB7jPvCEUpm9sGQPIEMx1FcZJc40RxhI79xzEMVxpC0OwM60fN5KkhQEmTqpRFMPQdFEvxZJEeSND0iQw80TP3IsipbHUxPw3kmTTMD0RnMaYxXOrrN830rStLSYUA/koxFKE6Q3O6WT9M8MSHQ0MuXQLpSXLE3xZJUwJy8bW0W+UPT7DEnUlMEa0xHdM0fI8EzVRlPTnKcGp2/tZzjLEIwzEdNUJNdG0/X1B1JRKX1EsdN1fY1IQwm1aULQ8S0GoVeSDIs+TK/rXy6nEV23YSpWRbkq1jJ84WbcsaqLaVk081lspXaqf3AsUC1Ol1IxVVFMqpdLzXZfsNX8+qfUEs2Bxg5lJwerN7Jld7LWIz2Atc0qLB8lmKo8kCRJIACSo2QGO11hOJM2hx5oefw/nmd5wH+SZ/n4D54GecAfkAf58AOcAHmAB5AB+eAAnAAJgAGQAHnA44Aw8AbsaUjOnY+jQBtYkqSgPjmOajq+p6GkoHgBouYuPnYE5ofwAHhsR8B+3mYH4HOUH+YJ/7YPaHnGiaAg=")
Groups
{
    "Group 1"
    {
        AddItem("Item 1",1)
        AddItem("Item 2",2)
    }
    "Group 2"
    {
        AddItem("Item 1",3)
        AddItem("Item 2",4)
    }
}
EndUpdate


property ItemFromPoint

property ExplorerBar.ItemFromPoint (X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS) as Item
Retrieves the item from point.

Type | Description
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates
Y as OLE_YPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates
Item | An Item object over the point( X, Y ).

Use the ItemFromPoint property to get the item over cursor. Use the GroupFromPoint property to retrieve the group from the cursor. Use the Caption property to specify the caption of the item.

The following VB sample displays the caption of the item from the cursor:

Private Sub ExplorerBar1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim i As Item
        Set i = .ItemFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not i Is Nothing Then
            Debug.Print i.Caption
        End If
    End With
End Sub

The following C++ sample displays the caption of the item from the cursor:

void OnMouseMoveExplorerbar1(short Button, short Shift, long X, long Y)
{
    CItem item = m_explorerbar.GetItemFromPoint( X, Y );
    if ( item.m_lpDispatch != NULL )
        OutputDebugString( item.GetCaption() );
}

The following VB.NET sample displays the caption of the item from the cursor:

Private Sub AxExplorerBar1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim i As EXPLORERBARLib.Item = .get_ItemFromPoint(e.x, e.y)
        If Not i Is Nothing Then
            Debug.WriteLine(i.Caption)
        End If
    End With
End Sub

The following C# sample displays the caption of the item from the cursor:

private void axExplorerBar1_MouseMoveEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent e)
{
    EXPLORERBARLib.Item i = axExplorerBar1.get_ItemFromPoint(e.x, e.y);
    if (i != null)
        System.Diagnostics.Debug.WriteLine(i.Caption);
}

The following VFP sample displays the caption of the item from the cursor:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local i
    i = .ItemFromPoint(x , y)
    If !isnull(i)
        with i
            wait window nowait .Caption
       endwith
    EndIf
EndWith


property Picture

property ExplorerBar.Picture as IPictureDisp
Retrieves or sets a graphic to be displayed in the control's background.

Type | Description
IPictureDisp | A Picture object that identifies the control's picture.

The control's picture is displayed on the control's background. Use the PictureDisplay property to specify the way how the picture is arranged on the control's background. Use the Picture property to specify a picture for a given group. Use the BackColor property to specify the control's background. Use the BackColor property to specify the background color group's caption, Use the BackColorList property to specify the background color of the group's list. Use the BackColor property to specify the item's background color. Use the DelayScroll property to stop scrolling the groups when expanding or collapsing them.


property PictureDisplay

property ExplorerBar.PictureDisplay as PictureDisplayEnum
Retrieves or sets a value that indicates the way how the graphic is displayed on the control's background.

Type | Description
PictureDisplayEnum | A PictureDisplayEnum expression that indicates the way how the picture is arranged on the control's background.

The control's picture is displayed on the control's background. Use the PictureDisplay property to specify the way how the picture is arranged on the control's background. Use the Picture property to specify a picture for a given group. Use the BackColor property to specify the control's background. Use the BackColor property to specify the background color group's caption, Use the BackColorList property to specify the background color of the group's list. Use the BackColor property to specify the item's background color. Use the DelayScroll property to stop scrolling the groups when expanding or collapsing them.


method Refresh

method ExplorerBar.Refresh ()
Refreshes the control.

Type Description

Use the Refresh method to force repainting the control. Use the BeginUpdate and EndUpdate methods to maintain performances when adding new items and groups to the control. Use the hWnd property to get the handle of the control's window.

The following VB sample calls the Refresh method:

ExplorerBar1.Refresh

The following C++ sample calls the Refresh method:

m_explorerbar.Refresh();

The following VB.NET sample calls the Refresh method:

AxExplorerBar1.CtlRefresh()

In VB.NET the System.Windows.Forms.Control class has already a Refresh method, so the CtlRefresh method should be called.

The following C# sample calls the Refresh method:

axExplorerBar1.CtlRefresh();

In C# the System.Windows.Forms.Control class has already a Refresh method, so the CtlRefresh method should be called.

The following VFP sample calls the Refresh method:

thisform.ExplorerBar1.Object.Refresh()


method ReplaceIcon

method ExplorerBar.ReplaceIcon ([Icon as Variant], [Index as Variant])
Adds a new icon, replaces an icon or clears the control's image list.

Type | Description
Icon as Variant | A long expression that indicates the icon's handle, or a IPictureDisp object.
Index as Variant | A long expression that indicates the index where icon is inserted
Return | Description
Long | A long expression that indicates the index of the icon in the images collection
Use the ReplaceIcon property to add, remove or replace an icon in the control's images collection. Also, the ReplaceIcon property can clear the images collection. Use the Images method to attach an image list to the control. Use the SmallIcons property to select the icon's size. Use the Images method to attach an image list to the control.

The following VB sample shows how to add a new icon to control's images list:

i = ExplorerBar1.ReplaceIcon( LoadPicture("d:\icons\help.ico").Handle), in this case the i specifies the index where the icon was added

The following VB sample shows how to replace an icon into control's images list::

i = ExplorerBar1.ReplaceIcon( LoadPicture("d:\icons\help.ico").Handle, 0), in this case the i is zero, because the first icon was replaced.

The following VB sample shows how to remove an icon from control's images list:

ExplorerBar1.ReplaceIcon 0, i, in this case the i must be the index of the icon that follows to be removed

The following VB sample shows how to clear the control's icons collection:

ExplorerBar1.ReplaceIcon 0, -1


property ScrollButtonHeight

property ExplorerBar.ScrollButtonHeight as Long
Specifies the height of the button in the vertical scrollbar.

Type | Description
Long | A long expression that defines the height of the button in the vertical scroll bar.
By default, the ScrollButtonHeight property is -1. If the ScrollButtonHeight property is -1, the control uses the default height ( from the system ) for the buttons in the vertical scroll bar. Use the ScrollWidth property to specify the width of the vertical scroll bar. Use the ScrollPartVisible property to specify the visible parts in the control's scroll bar. Use the ScrollThumbSize property to define a fixed size for the scrollbar's thumb.


property ScrollFont

property ExplorerBar.ScrollFont as IFontDisp
Retrieves or sets the scrollbar's font.

Type | Description
IFontDisp | A Font object
Use the ScrollFont property to specify the font in the control's scroll bar. Use the ScrolPartCaption property to specify the caption of the scroll's part. Use the ScrollPartVisible property to add or remove buttons/parts in the control's scrollbar. By default, when a part becomes visible, the ScrollPartEnable property is automatically called, so the parts becomes enabled. Use the ScrollPartEnable property to specify enable or disable parts in the control's scrollbar. The control fires the ScrollButtonClick event when the user clicks a part of the scroll bar.


property ScrollOrderParts

property ExplorerBar.ScrollOrderParts as String
Specifies the order of the buttons in the scroll bar.

Type | Description
String | A String expression that indicates the order of the buttons in the scroll bar. The list includes expressions like l, l1, ..., l5, t, r, r1, ..., r6 separated by comma, each expression indicating a part of the scroll bar, and its position indicating the displaying order.
Use the ScrollOrderParts to customize the order of the buttons in the scroll bar. By default, the ScrollOrderParts property is empty. If the ScrollOrderParts property is empty the default order of the buttons in the scroll bar are displayed like follows:

so, the order of the parts is: l1, l2, l3, l4, l5, l, t, r, r1, r2, r3, r4, r5 and r6. Use the ScrollPartVisible to specify whether a button in the scrollbar is visible or hidden. Use the ScrollPartEnable property to enable or disable a button in the scroll bar. Use the ScrollPartCaption property to assign a caption to a button in the scroll bar.

Use the ScrollOrderParts property to change the order of the buttons in the scroll bar. For instance, "l,r,t,l1,r1" puts the left and right buttons to the left of the thumb area, and the l1 and r1 buttons right after the thumb area. If the parts are not specified in the ScrollOrderParts property, automatically they are added to the end.

The list of supported literals in the ScrollOrderParts property is:

  • l for exLeftBPart, (<) The left or top button.
  • l1 for exLeftB1Part, (L1) The first additional button, in the left or top area.
  • l2 for exLeftB2Part, (L2) The second additional button, in the left or top area.
  • l3 for exLeftB3Part, (L3) The third additional button, in the left or top area.
  • l4 for exLeftB4Part, (L4) The forth additional button, in the left or top area.
  • l5 for exLeftB5Part, (L5) The fifth additional button, in the left or top area.
  • t for exLowerBackPart, exThumbPart and exUpperBackPart, The union between the exLowerBackPart and the exUpperBackPart parts.
  • r for exRightBPart, (>) The right or down button.
  • r1 for exRightB1Part, (R1) The first additional button in the right or down side.
  • r2 for exRightB2Part, (R2) The second additional button in the right or down side.
  • r3 for exRightB3Part, (R3) The third additional button in the right or down side.
  • r4 for exRightB4Part, (R4) The forth additional button in the right or down side.
  • r5 for exRightB5Part, (R5) The fifth additional button in the right or down side.
  • r6 for exRightB6Part, (R6) The sixth additional button in the right or down side.

Any other literal between commas is ignored. If duplicate literals are found, the second is ignored, and so on. For instance, "t,l,r" indicates that the left/top and right/bottom buttons are displayed right/bottom after the thumb area.


property ScrollPartCaption

property ExplorerBar.ScrollPartCaption(Part as ScrollPartEnum) as String
Specifies the caption being displayed on the specified scroll part.

Type | Description
Part as ScrollPartEnum | A ScrollPartEnum expression that specifies the parts of the scroll where the text is displated
String | A String expression that specifies the caption being displayed on the part of the scroll bar.
Use the ScrolPartCaption property to specify the caption of the scroll's part. Use the ScrollPartVisible property to add or remove buttons/parts in the control's scrollbar. By default, when a part becomes visible, the ScrollPartEnable property is automatically called, so the parts becomes enabled. Use the ScrollPartEnable property to specify enable or disable parts in the control's scrollbar. The control fires the ScrollButtonClick event when the user clicks a part of the scroll bar. Use the ScrollFont property to specify the font in the control's scroll bar. Use the ScrollOrderParts property to customize the order of the buttons in the scroll bar.

By default, the following parts are shown:

  • exLeftBPart ( the left or up button of the control )
  • exLowerBackPart ( the part between the left/up button and the thumb part of the control )
  • exThumbPart ( the thumb/scrollbox part )
  • exUpperBackPart ( the part between the the thumb and the right/down button of the control )
  • exRightBPart ( the right or down button of the control )

The following VB sample adds up and down additional buttons to the control's vertical scroll bar :

With ExplorerBar1
    .BeginUpdate
        .ScrollPartVisible(exVScroll, exLeftB1Part Or exRightB1Part) = True
        .ScrollPartCaption(exVScroll, exLeftB1Part) = "<img></img>1"
        .ScrollPartCaption(exVScroll, exRightB1Part) = "<img></img>2"
    .EndUpdate
End With

The following VB.NET sample adds up and down additional buttons to the control's vertical scroll bar :

With AxExplorerBar1
    .BeginUpdate()
    .set_ScrollPartVisible(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part Or EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, True)
    .set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part, "<img></img>1")
    .set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, "<img></img>2")
    .EndUpdate()
End With

The following C# sample adds up and down additional buttons to the control's vertical scroll bar :

axExplorerBar1.BeginUpdate();
axExplorerBar1.set_ScrollPartVisible(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part | EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, true);
axExplorerBar1.set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part , "<img></img>1");
axExplorerBar1.set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, "<img></img>2");
axExplorerBar1.EndUpdate();

The following C++ sample adds up and down additional buttons to the control's vertical scroll bar :

m_explorerbar.BeginUpdate();
m_explorerbar.SetScrollPartVisible( 0 /*exVScroll*/, 32768  /*exLeftB1Part*/ | 32 /*exRightB1Part*/, TRUE );
m_explorerbar.SetScrollPartCaption( 0 /*exVScroll*/, 32768  /*exLeftB1Part*/ , _T("<img></img>1") );
m_explorerbar.SetScrollPartCaption( 0 /*exVScroll*/, 32 /*exRightB1Part*/ , _T("<img></img>2") );
m_explorerbar.EndUpdate();

The following VFP sample adds up and down additional buttons to the control's vertical scroll bar :

With thisform.ExplorerBar1
    .BeginUpdate
        .ScrollPartVisible(0, bitor(32768,32)) = .t.
        .ScrollPartCaption(0,32768) = "<img></img>1"
        .ScrollPartCaption(0, 32) = "<img></img>2"
    .EndUpdate
EndWith
*** ActiveX Control Event ***
LPARAMETERS scrollpart

wait window nowait ltrim(str(scrollpart))


property ScrollPartCaptionAlignment

property ExplorerBar.ScrollPartCaptionAlignment(Part as ScrollPartEnum) as AlignmentEnum
Specifies the alignment of the caption in the part of the scroll bar.

Type | Description
Part as ScrollPartEnum | A ScrollPartEnum expression that specifies the parts of the scroll where the text is displayed
AlignmentEnum | An AlignmentEnum expression that specifies the alignment of the caption in the part of the scrollbar.
The ScrollPartCaptionAlignment property specifies the alignment of the caption in the part of the scroll bar. By default, the caption is centered. Use the ScrolPartCaption property to specify the caption being displayed on specified part of the scroll bar. Use the ScrollPartVisible property to add or remove buttons/parts in the control's scrollbar.


property ScrollPartEnable

property ExplorerBar.ScrollPartEnable(Part as ScrollPartEnum) as Boolean
Indicates whether the specified scroll part is enabled or disabled.

Type | Description
Part as ScrollPartEnum | A ScrollPartEnum expression that specifies the parts of the scroll bar being enabled or disabled.
Boolean | A Boolean expression that specifies whether the scrollbar's part is enabled or disabled.
By default, when a part becomes visible, the ScrollPartEnable property is automatically called, so the parts becomes enabled. Use the ScrollPartVisible property to add or remove buttons/parts in the control's scrollbar. Use the ScrollPartEnable property to specify enable or disable parts in the control's scrollbar. Use the ScrolPartCaption property to specify the caption of the scroll's part. The control fires the ScrollButtonClick event when the user clicks a part of the scroll bar. Use the ScrollOrderParts property to customize the order of the buttons in the scroll bar.


property ScrollPartVisible

property ExplorerBar.ScrollPartVisible(Part as ScrollPartEnum) as Boolean
Indicates whether the specified scroll part is visible or hidden.

Type | Description
Part as ScrollPartEnum | A ScrollPartEnum expression that specifies the parts of the scroll bar being visible
Boolean | A Boolean expression that specifies whether the scrollbar's part is visible or hidden.
Use the ScrollPartVisible property to add or remove buttons/parts in the control's scrollbar. By default, when a part becomes visible, the ScrollPartEnable property is automatically called, so the parts becomes enabled. Use the ScrollPartEnable property to specify enable or disable parts in the control's scrollbar. Use the ScrolPartCaption property to specify the caption of the scroll's part. The control fires the ScrollButtonClick event when the user clicks a part of the scroll bar. Use the Background property to change the visual appearance for any part in the control's scroll bar. Use the ScrollOrderParts property to customize the order of the buttons in the scroll bar.

By default, the following parts are shown:

  • exLeftBPart ( the left or up button of the control )
  • exLowerBackPart ( the part between the left/up button and the thumb part of the control )
  • exThumbPart ( the thumb/scrollbox part )
  • exUpperBackPart ( the part between the the thumb and the right/down button of the control )
  • exRightBPart ( the right or down button of the control )

The following VB sample adds up and down additional buttons to the control's vertical scroll bar :

With ExplorerBar1
    .BeginUpdate
        .ScrollPartVisible(exVScroll, exLeftB1Part Or exRightB1Part) = True
        .ScrollPartCaption(exVScroll, exLeftB1Part) = "<img></img>1"
        .ScrollPartCaption(exVScroll, exRightB1Part) = "<img></img>2"
    .EndUpdate
End With

The following VB.NET sample adds up and down additional buttons to the control's vertical scroll bar :

With AxExplorerBar1
    .BeginUpdate()
    .set_ScrollPartVisible(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part Or EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, True)
    .set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part, "<img></img>1")
    .set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, "<img></img>2")
    .EndUpdate()
End With

The following C# sample adds up and down additional buttons to the control's vertical scroll bar :

axExplorerBar1.BeginUpdate();
axExplorerBar1.set_ScrollPartVisible(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part | EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, true);
axExplorerBar1.set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exLeftB1Part , "<img></img>1");
axExplorerBar1.set_ScrollPartCaption(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, EXEXPLORERBARLib.ScrollPartEnum.exRightB1Part, "<img></img>2");
axExplorerBar1.EndUpdate();

The following C++ sample adds up and down additional buttons to the control's vertical scroll bar :

m_explorerbar.BeginUpdate();
m_explorerbar.SetScrollPartVisible( 0 /*exVScroll*/, 32768  /*exLeftB1Part*/ | 32 /*exRightB1Part*/, TRUE );
m_explorerbar.SetScrollPartCaption( 0 /*exVScroll*/, 32768  /*exLeftB1Part*/ , _T("<img></img>1") );
m_explorerbar.SetScrollPartCaption( 0 /*exVScroll*/, 32 /*exRightB1Part*/ , _T("<img></img>2") );
m_explorerbar.EndUpdate();

The following VFP sample adds up and down additional buttons to the control's vertical scroll bar :

With thisform.ExplorerBar1
    .BeginUpdate
        .ScrollPartVisible(0, bitor(32768,32)) = .t.
        .ScrollPartCaption(0,32768) = "<img></img>1"
        .ScrollPartCaption(0, 32) = "<img></img>2"
    .EndUpdate
EndWith
*** ActiveX Control Event ***
LPARAMETERS scrollpart

wait window nowait ltrim(str(scrollpart))


property ScrollThumbSize

property ExplorerBar.ScrollThumbSize as Long
Specifies the size of the thumb in the scrollbar.

Type | Description
Long | A long expression that defines the size of the scrollbar's thumb.
Use the ScrollThumbSize property to define a fixed size for the scrollbar's thumb. By default, the ScrollThumbSize property is -1, that makes the control computes automatically the size of the thumb based on the scrollbar's range. If case, use the fixed size for your thumb when you change its visual appearance using the Background(exVSThumb) property. Use the ScrollWidth property to specify the width of the vertical scroll bar. Use the ScrollButtonHeight property to specify the height of the buttons in the vertical scroll bar. Use the ScrollPartVisible property to specify the visible parts in the control's scroll bar.


property ScrollToolTip

property ExplorerBar.ScrollToolTip as String
Specifies the tooltip being shown when the user moves the scroll box.

Type | Description
String | A string expression being shown when the user clicks and moves the scrollbar's thumb.
Use the ScrollToolTip property to specify whether the control displays a tooltip when the user clicks and moves the scrollbar's thumb. By default, the ScrollToolTip property is empty. If the ScrollToolTip property is empty, the tooltip is not shown when the user clicks and moves the thumb of the scroll bar. Use the SortPartVisible property to specify the parts being visible in the control's scroll bar.

The following VB sample displays a tooltip when the user clicks and moves the thumb in the control's scroll bar:

Private Sub ExplorerBar1_OffsetChanged(ByVal Horizontal As Boolean, ByVal NewVal As Long)
    If (Not Horizontal) Then
        ExplorerBar1.ScrollToolTip(exVScroll) = "Record " & NewVal
    End If
End Sub

The following VB.NET sample displays a tooltip when the user clicks and moves the thumb in the control's scroll bar:

Private Sub AxExplorerBar1_OffsetChanged(ByVal sender As System.Object, ByVal e As AxEXEXPLORERBARLib._IExplorerBarEvents_OffsetChangedEvent) Handles AxExplorerBar1.OffsetChanged
    If (Not e.horizontal) Then
        AxExplorerBar1.set_ScrollToolTip(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, "Record " & e.newVal.ToString())
    End If
End Sub

The following C++ sample displays a tooltip when the user clicks and moves the thumb in the control's scroll bar:

void OnOffsetChangedExplorerBar1(BOOL Horizontal, long NewVal)
{
    if ( !Horizontal )
    {
        CString strFormat;
        strFormat.Format( _T("%i"), NewVal );
        m_explorerbar.SetScrollToolTip( 0, strFormat );
    }
}

The following C# sample displays a tooltip when the user clicks and moves the thumb in the control's scroll bar:

private void axExplorerBar1_OffsetChanged(object sender, AxEXEXPLORERBARLib._IExplorerBarEvents_OffsetChangedEvent e)
{
    if ( !e.horizontal )
        axExplorerBar1.set_ScrollToolTip(EXEXPLORERBARLib.ScrollBarEnum.exVScroll, "Record " + e.newVal.ToString());
}

The following VFP sample displays a tooltip when the user clicks and moves the thumb in the control's scroll bar:

*** ActiveX Control Event ***
LPARAMETERS horizontal, newval

If (1 # horizontal) Then
    thisform.ExplorerBar1.ScrollToolTip(0) = "Record " + ltrim(str(newval))
EndIf


property ScrollWidth

property ExplorerBar.ScrollWidth as Long
Specifies the width of the vertical scrollbar.

Type | Description
Long | A long expression that defines the width of the vertical scroll bar.
By default, the ScrollWidth property is -1. If the ScrollWidth property is -1, the control uses the default width of the vertical scroll bar from the system. Use the ScrollWidth property to specify the width of the vertical scroll bar. Use the ScrollButtonHeight property to specify the height of the buttons in the vertical scroll bar. Use the ScrollPartVisible property to specify the visible parts in the control's scroll bar. Use the ScrollThumbSize property to define a fixed size for the scrollbar's thumb.


property SelectShortcut

property ExplorerBar.SelectShortcut as Variant
Selects and displays the specified shortcut.

Type | Description
Variant | A String expression that indicates the caption of the Shortcut being selected.
The SelectShortcut property indicates the shortcut being selected. The Shortcut property of the Group object indicates the shortcuts that may be selected. The Group objects with the same Shortcut property indicates a set of groups, that may be selected using the SelectShortcut property. The SelectShortcut event is fired when the user clicks a shortcut or when the user calls the SelectShortcut property. The ShowShortcutBar property shows or hides the control's shortcut bar. The ShortcutPicture property assigns a custom size picture to a shortcut. Use the ShortcutPictureWidth and ShortcutPictureHeight properties to indicate the size of the picture being displayed in the shortcut bar. The ShortcutBarHeight property sets or gets a value that indicates the height in pixels of the control's shortcut bar


property ShortcutBarBackColor

property ExplorerBar.ShortcutBarBackColor as Color
Retrieves or sets the shortcut bar's background color.

Type | Description
Color | A color expression that indicates the shortcurt's background color. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.
Use the ShortcutBarBackColor property to specify the background color of the control's shortcut bar. The visual appearance of the items in the shortcut bar can be defined using skins. The ShortcutBarSelBackColor property to specify the visual appearance/background color for the selected icon/picture in the last item of the shortcut bar. The last item in the shortcut bar displays only icons or custom size pictures for each shortcut defined using the Shortcut property of the Group object. The ShortcutBarSelCaptionBackColor property defines the visual appearance/background color for the selected shortcut, when the full HTML caption is displayed. The ShortcutResizeBackColor property defines the visual appearance/background color slider that resizes the shortcut bar.


property ShortcutBarHeight

property ExplorerBar.ShortcutBarHeight as Long
Selects and displays the specified shortcut.

Type | Description
Long | A long expression that indicates the height of the shortcut bar.
By default, the ShortcutBarHeight property is 24 pixels. The ShortcutBarHeight property defines the height for each item in the shortcut bar. For instance, if the shortcut bar has no expanded shortcuts, the ShortcutBarHeight property defines the height of the shortcut bar, that displays a single item where all shortcuts are displayed. Use the ShowShortcutBar property to show or hide the control's shortcut bar. The ShortcutPicture property assigns a custom size picture to a shortcut. Use the ShortcutPictureWidth and ShortcutPictureHeight properties to indicate the size of the picture being displayed in the shortcut bar.


property ShortcutBarSelBackColor

property ExplorerBar.ShortcutBarSelBackColor as Color
Retrieves or sets the background color for the selected icon in the shortcut bar.

Type | Description
Color | A color expression that indicates the background color for the selected shortcut. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.
The ShortcutBarSelBackColor property to specify the visual appearance/background color for the selected icon/picture in the last item of the shortcut bar. The last item in the shortcut bar displays only icons or custom size pictures for each shortcut defined using the Shortcut property of the Group object. The ShortcutBarSelCaptionBackColor property defines the visual appearance/background color for the selected shortcut, when the full HTML caption is displayed. Use the ShortcutBarBackColor property to specify the background color of the control's shortcut bar. The visual appearance of the items in the shortcut bar can be defined using skins. The ShortcutResizeBackColor property defines the visual appearance/background color slider that resizes the shortcut bar.


property ShortcutBarSelCaptionBackColor

property ExplorerBar.ShortcutBarSelCaptionBackColor as Color
Retrieves or sets the background color for selected shortcut when its entire caption is displayed.

Type | Description
Color | A color expression that indicates the background color for the selected shortcut. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.
The ShortcutBarSelCaptionBackColor property defines the visual appearance/background color for the selected shortcut, when the full HTML caption is displayed. The ShortcutBarSelBackColor property to specify the visual appearance/background color for the selected icon/picture in the last item of the shortcut bar. The last item in the shortcut bar displays only icons or custom size pictures for each shortcut defined using the Shortcut property of the Group object. Use the ShortcutBarBackColor property to specify the background color of the control's shortcut bar. The visual appearance of the items in the shortcut bar can be defined using skins. The ShortcutResizeBackColor property defines the visual appearance/background color slider that resizes the shortcut bar.


property ShortcutPicture

property ExplorerBar.ShortcutPicture(Shortcut as String) as Variant
Specifies a custom-size picture assigned to a shortcut.

Type | Description
Shortcut as String | A String expression that indicates the caption of the shortcut where a custom size picture is assigned.
Variant | A String expression that indicates the path to the picture file or a string expression that indicates the base64 encoded string that holds a picture object. Use the eximages tool to save your picture as base64 encoded format. A Picture object being assigned to the shortcut.
Use the ShorcutPicture property to assign a custom size picture to a shortcut. The ShowShortcutBar property specifies whether the control's shortcut bar is visible or hidden. The Shortcut property indicates the HTML caption of the shortcut that displays the specified group. Groups with the same Shortcut property are displayed in the same shortcut. The shortcut bar displays the first icon found in the HTML caption, if a custom size picture is not assigned to the shortcut using the ShortcutPicture property. Use the ShortcutPictureWidth and ShortcutPictureHeight properties to indicate the size of the picture being displayed in the shortcut bar. Use the ShortcutBarHeight property to define the height in pixels of one shortcut items in the shortcut bar. Use the ExpandShortcutCount property to expand the number of shortcuts in the control's shortcut bar. The ShorcutPicture property has no effect if the shortcut bar is not visible, or there is no Group assigned to the specified shortcut.

The following VB sample assign a custom size picture to the shortcut named "<img>1</img> <b>Set</b> 1":

With ListBar1
    .ShortcutBarHeight = 38
    .ShortcutPicture("<img>1</img> <b>Set</b> 1") = "D:\Temp\Icons\misc.gif"
End With

The following screen shot shows the shortcutbar when there is no items expanded:

The following screen shot shows the shortcutbar when there is a single shortcut expanded ( Set 1 )


property ShortcutPictureHeight

property ExplorerBar.ShortcutPictureHeight as Long
Specifies the height in pixels of the custom size picture being displayed in the shortcut bar.

Type | Description
Long | A Long expression that indicates the height of the picture to be stretched to.
By default, the ShortcutPictureHeight property is -1. If the ShortcutPictureHeight property is -1, the shortcut's picture is not stretched on the height. If the ShortcutPictureHeight property is positive, it indicates the height in pixels to be stretched to. The ShortcutPictureHeight property specifies the height of the picture when assigning a custom size picture using the ShortcutPicture property. The ShortcutPictureWidth property specifies the width in pixels of the picture to be stretched to. Use the ShortcutBarHeight property to specify the height in pixels of the control's shortcut bar. The ShowShortcutBar property specifies whether the control's shortcut bar is visible or hidden. The Shortcut property indicates the HTML caption of the shortcut that displays the specified group. Groups with the same Shortcut property are displayed in the same shortcut. The shortcut bar displays the first icon found in the HTML caption, if a custom size picture is not assigned to the shortcut using the ShortcutPicture property.


property ShortcutPictureWidth

property ExplorerBar.ShortcutPictureWidth as Long
Specifies the width in pixels of the custom size picture being displayed in the shortcut bar.

Type | Description
Long | A long expression that indicates the width of the picture to be stretched to.
By default, the ShortcutPictureWidth property is -1. If the ShortcutPictureWidth property is -1, the shortcut's picture is not stretched on the width. If the ShortcutPictureWidth property is positive, it indicates the width in pixels to be stretched to. The ShortcutPictureWidth property specifies the width of the picture when assigning a custom size picture using the ShortcutPicture property. The ShortcutPictureHeight property specifies the height in pixels of the picture to be stretched to. The ShowShortcutBar property specifies whether the control's shortcut bar is visible or hidden. The Shortcut property indicates the HTML caption of the shortcut that displays the specified group. Groups with the same Shortcut property are displayed in the same shortcut. The shortcut bar displays the first icon found in the HTML caption, if a custom size picture is not assigned to the shortcut using the ShortcutPicture property.


property ShortcutResizeBackColor

property ExplorerBar.ShortcutResizeBackColor as Color
Retrieves or sets the background color for the shortcut's resize bar.

Type | Description
Color | A color expression that indicates the background color for the slider that resizes the shortcut bar. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part.
The ShortcutResizeBackColor property defines the visual appearance/background color slider that resizes the shortcut bar. Use the ShortcutBarBackColor property to specify the background color of the control's shortcut bar. The visual appearance of the items in the shortcut bar can be defined using skins. The ShortcutBarSelBackColor property to specify the visual appearance/background color for the selected icon/picture in the last item of the shortcut bar. The last item in the shortcut bar displays only icons or custom size pictures for each shortcut defined using the Shortcut property of the Group object. The ShortcutBarSelCaptionBackColor property defines the visual appearance/background color for the selected shortcut, when the full HTML caption is displayed.


property ShowFocusRect

property ExplorerBar.ShowFocusRect as Boolean
Specifies a value that indicates whether the control draws the focused item.

Type | Description
Boolean | A boolean expression that indicates whether the control's focused item is marked.

By default, the ShowFocusRect property is False. Use the ShowFocusRect property to mark the focused item. By default, the ShowFocusRect property is True. If the ShowFocusRect property is true, the control paints a focused border around the focused item. The SelectItem event is fired when the user presses the ENTER key, and the ShowFocusRect property is True.


property ShowImageList

property ExplorerBar.ShowImageList as Boolean
Retrieves or sets a value that indicates whether the image list window is visible or hidden.

Type | Description
Boolean | A boolean expression that indicates whether the control's images list window is visible or hidden.

The ShowImageList control has no effect at runtime. It has effect only at design time. Use the method to change the control's images list collection, or use ReplaceIcon method to add, remove, or clear the images collection. Use the SmallIcons property to select the icon's size. Use the Images method to assign a list of images to the control.


property ShowShortcutBar

property ExplorerBar.ShowShortcutBar as Boolean
Retrieves or sets a value that indicates whether the image shortcut bar is visible or hidden.

Type | Description
Boolean | A Boolean expression that indicates whether the control's shortcut bar is visible or hidden.

By default, the ShowShortcutBar property is False, and that means that the shortcut bar is hidden. The shortcut bar if visible, it is displayed on the bottom side of the control as seen in the following screen shot. The Shortcut feature allows you to group the groups in sets, so you may have sets that contains groups, and groups that contains items. The Shortcut property indicates the HTML caption of the shortcut that displays the specified group. Groups with the same Shortcut property are displayed in the same shortcut. The ShortcutPicture property assigns a custom size picture to a shortcut. Use the ShortcutPictureWidth and ShortcutPictureHeight properties to indicate the size of the picture being displayed in the shortcut bar. The ShortcutBarHeight property sets or gets a value that indicates the height in pixels of the control's shortcut bar. The ShortcutBarBackColor property indicates the shortcut bar's background color or its visual appearance if using skins. The ShortcutResizeBackColor property changes the visual appearance of the resizing bar of the shortcut bar. The SelectShortcut property selects a shortcut. When a shortcut is selected, the control displays only groups with the Shortcut property as being the SelectShortcut property.

The red circle marks the control's shortcut bar. Use the AllowResizeShortcutBar property to specify whether the user may expand the shortcut bar using the mouse. Use the ExpandShortcutImage property to display a custom icon in the right side expand button. Use the ExpandShortcutCount property to specify the number of shortcuts that display their full caption, else the first icon in the caption is displayed or the assigned picture is displayed.


method ShowToolTip

method ExplorerBar.ShowToolTip (ToolTip as String, [Title as Variant], [Alignment as Variant], [X as Variant], [Y as Variant])
Shows the specified tooltip at given position.

Type Description
ToolTip as String The ToolTip parameter can be any of the following:
  • NULL(BSTR) or "<null>"(string) to indicate that the tooltip for the object being hovered is not changed
  • A String expression that indicates the description of the tooltip, that supports built-in HTML format (adds, replaces or changes the object's tooltip)
Title as Variant The Title parameter can be any of the following:
  • missing (VT_EMPTY, VT_ERROR type) or "<null>"(string) the title for the object being hovered is not changed.
  • A String expression that indicates the title of the tooltip (no built-in HTML format) (adds, replaces or changes the object's title)
Alignment as Variant A long expression that indicates the alignment of the tooltip relative to the position of the cursor. If missing (VT_EMPTY, VT_ERROR) the alignment of the tooltip for the object being hovered is not changed.

The Alignment parameter can be one of the following:

  • 0 - exTopLeft
  • 1 - exTopRight
  • 2 - exBottomLeft
  • 3 - exBottomRight
  • 0x10 - exCenter
  • 0x11 - exCenterLeft
  • 0x12 - exCenterRight
  • 0x13 - exCenterTop
  • 0x14 - exCenterBottom

By default, the tooltip is aligned relative to the top-left corner (0 - exTopLeft).

X as Variant Specifies the horizontal position to display the tooltip as one of the following:
  • missing (VT_EMPTY, VT_ERROR type), indicates that the tooltip is shown on its default position / current cursor position (ignored)
  • -1, indicates the current horizontal position of the cursor (current x-position)
  • a numeric expression that indicates the horizontal screen position to show the tooltip (fixed screen x-position)
  • a string expression that indicates the horizontal displacement relative to default position to show the tooltip (moved)
Y as Variant Specifies the vertical position to display the tooltip as one of the following:
  • missing (VT_EMPTY, VT_ERROR type), indicates that the tooltip is shown on its default position / current cursor position (ignored)
  • -1, indicates the current vertical position of the cursor (current y-position)
  • a numeric expression that indicates the vertical screen position to show the tooltip (fixed screen y-position)
  • a string expression that indicates the vertical displacement relative to default position to show the tooltip (displacement)
Use the ShowToolTip method to display a custom tooltip at specified position or to update the object's tooltip, title or position. You can call the ShowToolTip method during the MouseMove event. Use the ToolTipPopDelay property specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control. The ToolTipDelay property specifies the time in ms that passes before the ToolTip appears. Use the ToolTipWidth property to specify the width of the tooltip window. Use the ToolTipFont property to change the tooltip's font. Use the Background(exToolTipAppearance) property indicates the visual appearance of the borders of the tooltips. Use the Background(exToolTipBackColor) property indicates the tooltip's background color. Use the Background(exToolTipForeColor) property indicates the tooltip's foreground color.

For instance:

  • ShowToolTip(`<null>`,`<null>`,,`+8`,`+8`), shows the tooltip of the object moved relative to its default position
  • ShowToolTip(`<null>`,`new title`), adds, changes or replaces the title of the object's tooltip
  • ShowToolTip(`new content`), adds, changes or replaces the object's tooltip
  • ShowToolTip(`new content`,`new title`), shows the tooltip and title at current position
  • ShowToolTip(`new content`,`new title`,,`+8`,`+8`), shows the tooltip and title moved relative to the current position
  • ShowToolTip(`new content`,``,,128,128), displays the tooltip at a fixed position
  • ShowToolTip(``,``), hides the tooltip

The ToolTip parameter supports the built-in HTML format like follows:

  • <b> ... </b> displays the text in bold
  • <i> ... </i> displays the text in italics
  • <u> ... </u> underlines the text
  • <s> ... </s> Strike-through text
  • <a id;options> ... </a> displays an anchor element that can be clicked. An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link.The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The control fires the AnchorClick(AnchorID, Options) event when the user clicks the anchor element. The FormatAnchor property customizes the visual effect for anchor elements.
  • <font face;size> ... </font> displays portions of text with a different font and/or different size. For instance, the <font Tahoma;12>bit</font> draws the bit text using the Tahoma font, on size 12 pt. If the name of the font is missing, and instead size is present, the current font is used with a different size. For instance, <font ;12>bit</font> displays the bit text using the current font, but with a different size.
  • <fgcolor rrggbb> ... </fgcolor> or <fgcolor=rrggbb> ... </fgcolor> displays text with a specified foreground color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <bgcolor rrggbb> ... </bgcolor> or <bgcolor=rrggbb> ... </bgcolor> displays text with a specified background color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <solidline rrggbb> ... </solidline> or <solidline=rrggbb> ... </solidline> draws a solid-line on the bottom side of the current text-line, of specified RGB color. The <solidline> ... </solidline> draws a black solid-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <dotline rrggbb> ... </dotline> or <dotline=rrggbb> ... </dotline> draws a dot-line on the bottom side of the current text-line, of specified RGB color. The <dotline> ... </dotline> draws a black dot-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <upline> ... </upline> draws the line on the top side of the current text-line (requires <solidline> or <dotline>).
  • <r> right aligns the text
  • <c> centers the text
  • <br> forces a line-break
  • <img>number[:width]</img> inserts an icon inside the text. The number indicates the index of the icon being inserted. Use the Images method to assign a list of icons to your chart. The last 7 bits in the high significant byte of the number expression indicates the identifier of the skin being used to paint the object. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the part. The width is optional and indicates the width of the icon being inserted. Using the width option you can overwrite multiple icons getting a nice effect. By default, if the width field is missing, the width is 18 pixels.
  • <img>key[:width]</img> inserts a custom size picture into the text being previously loaded using the HTMLPicture property. The Key parameter indicates the key of the picture being displayed. The Width parameter indicates a custom size, if you require to stretch the picture, else the original size of the picture is used.
  • & glyph characters as &amp; ( & ), &lt; ( < ), &gt; ( > ), &qout; ( " ) and &#number; ( the character with specified code ), For instance, the &#8364; displays the EUR character. The & ampersand is only recognized as markup when it is followed by a known letter or a #character and a digit. For instance if you want to display <b>bold</b> in HTML caption you can use &lt;b&gt;bold&lt;/b&gt;
  • <off offset> ... </off> defines the vertical offset to display the text/element. The offset parameter defines the offset to display the element. This tag is inheritable, so the offset is keep while the associated </off> tag is found. You can use the <off offset> HTML tag in combination with the <font face;size> to define a smaller or a larger font to be displayed. For instance: Text with <font ;7><off 6>subscript displays the text such as: Text with subscript The Text with <font ;7><off -6>superscript displays the text such as: Text with subscript
  • <gra rrggbb;mode;blend> ... </gra> defines a gradient text. The text color or <fgcolor> defines the starting gradient color, while the rr/gg/bb represents the red/green/blue values of the ending color, 808080 if missing as gray. The mode is a value between 0 and 4, 1 if missing, and blend could be 0 or 1, 0 if missing. The <font> HTML tag can be used to define the height of the font. Any of the rrggbb, mode or blend field may not be specified. The <gra> with no fields, shows a vertical gradient color from the current text color to gray (808080). For instance the <font ;18><gra FFFFFF;1;1>gradient-center</gra></font> generates the following picture:
  • <out rrggbb;width> ... </out> shows the text with outlined characters, where rr/gg/bb represents the red/green/blue values of the outline color, 808080 if missing as gray, width indicates the size of the outline, 1 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><out 000000><fgcolor=FFFFFF>outlined</fgcolor></out></font> generates the following picture:
  • <sha rrggbb;width;offset> ... </sha> define a text with a shadow, where rr/gg/bb represents the red/green/blue values of the shadow color, 808080 if missing as gray, width indicates the size of shadow, 4 if missing, and offset indicates the offset from the origin to display the text's shadow, 2 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><sha>shadow</sha></font> generates the following picture:

    or <font ;31><sha 404040;5;0><fgcolor=FFFFFF>outline anti-aliasing</fgcolor></sha></font> gets:


property SmallIcons

property ExplorerBar.SmallIcons as Boolean
Retrieves or sets a value that indicates whether the control uses small icons or large icons.

Type | Description
Boolean | A boolean expression that indicates whether the control uses small icons or large icons.

By default, the SmallIcons property is True. Use the SmallIcons property to specify the size of icons being used. If the SmallIcons property is True, the control displays 16x16 size icons. If the SmallIcons property is False, the control displays 32x32 size icons. Use the Image property to assign an icon or a custom size picture to the item. Use the Image property to assign an icon or a custom size picture to the group. Use the Images property to assign an image list to the control. Use the Refresh method to update the control. Use the GroupHeight property to specify the height of the captions for all groups. Use the ItemHeight property to specify the height of the items inside the group. Use the ShowImageList property to show the control's images list at runtime.

The following screen shot displays 16x16 icons:

The following screen shot displays 32x32 icons:


property Template

property ExplorerBar.Template as String
Specifies the control's template.

Type | Description
String | A string expression that indicates the initialization code.
The control's template uses the X-Script language to initialize the control's content. Use the Template property page of the control to update the control's Template property. Use the Template property to execute code by passing instructions as a string ( template string ). The ExecuteTemplate property to get the result of executing a template script.

Most of our UI components provide a Template page that's accessible in design mode. No matter what programming language you are using, you can have a quick view of the component's features using the WYSWYG Template editor.

  • Place the control to your form or dialog.
  • Locate the Properties item, in the control's context menu, in design mode. If your environment doesn't provide a Properties item in the control's context menu, please try to locate in the Properties browser.
  • Click it, and locate the Template page.
  • Click the Help button. In the left side, you will see the component, in the right side, you will see a x-script code that calls methods and properties of the control.

The control's Template page helps user to initialize the control's look and feel in design mode, using the x-script language that's easy and powerful. The Template page displays the control on the left side of the page. On the right side of the Template page, a simple editor is displayed where user writes the initialization code. The control's look and feel is automatically updated as soon as the user types new instructions. The Template script is saved to the container persistence ( when Apply button is pressed ), and it is executed when the control is initialized at runtime. Any component that provides a WYSWYG Template page, provides a Template property. The Template property executes code from a string ( template string ).

The Template script is composed by lines of instructions. Instructions are separated by "\n\r" ( newline ) characters.

An instruction can be one of the following:

  • Dim list of variables Declares the variables. Multiple variables are separated by commas. ( Sample: Dim h, h1, h2 )
  • variable = property( list of arguments ) Assigns the result of the property to a variable. The "variable" is the name of a declared variable. The "property" is the property name of the object in the context. The "list or arguments" may include variables or values separated by commas. ( Sample: h = InsertItem(0,"New Child") )
  • property( list of arguments ) = value Changes the property. The value can be a variable, a string, a number, a boolean value or a RGB value.
  • method( list of arguments ) Invokes the method. The "list or arguments" may include variables or values separated by commas.
  • { Beginning the object's context. The properties or methods called between { and } are related to the last object returned by the property prior to { declaration.
  • } Ending the object's context
  • object. property( list of arguments ).property( list of arguments ).... The .(dot) character splits the object from its property. For instance, the Columns.Add("Column1").HeaderBackColor = RGB(255,0,0), adds a new column and changes the column's header back color.

The Template supports the following general functions:

  • RGB(R,G,B) property retrieves an RGB value, where the R, G, B are byte values that indicates the R G B values for the color being specified. For instance, the following code changes the control's background color to red: BackColor = RGB(255,0,0)
  • CreateObject(progID) property creates and retrieves a single uninitialized object of the class associated with a specified program identifier

For instance, the following template string adds two groups, and an item to each group:

BeginUpdate
Groups
{
    "Group 1"
    {
        AddItem("Item 1",1)
        Expanded = True
    }
    "Group 2"
    {
        AddItem("Item 1",2)
    }
}
EndUpdate


property TemplateDef

property ExplorerBar.TemplateDef as Variant
Defines inside variables for the next Template/ExecuteTemplate call.

Type | Description
Variant | A string expression that indicates the Dim declaration, or any Object expression to be assigned to previously declared variables.
The TemplateDef property has been added to allow programming languages such as dBASE Plus to set control's properties with multiple parameters. It is known that programming languages such as dBASE Plus or XBasic from AlphaFive, does not support setting a property with multiple parameters. In other words, these programming languages does not support something like Property(Parameters) = Value, so our controls provide an alternative using the TemplateDef method. The first call of the TemplateDef should be a declaration such as "Dim a,b" which means the next 2 calls of the TemplateDef defines the variables a and b. The next call should be Template or ExecuteTemplate property which can use the variable a and b being defined previously.

So, calling the TemplateDef property should be as follows:

with (Control)
    TemplateDef = [Dim var_Column]
    TemplateDef = var_Column
    Template = [var_Column.Def(4) = 255]
endwith

This sample allocates a variable var_Column, assigns the value to the variable ( the second call of the TemplateDef ), and the Template call uses the var_Column variable ( as an object ), to call its Def property with the parameter 4.

Let's say we need to define the background color for a specified column, so we need to call the Def(exCellBackColor) property of the column, to define the color for all cells in the column.

The following VB6 sample shows setting the Def property such as:

With Control
    .Columns.Add("Column 1").Def(exCellBackColor) = 255
    .Columns.Add "Column 2"
    .Items.AddItem 0
    .Items.AddItem 1
    .Items.AddItem 2
End With

In dBASE Plus, calling the Def(4) has no effect, instead using the TemplateDef helps you to use properly the Def property as follows:

local Control,var_Column

Control = form.Activex1.nativeObject
// Control.Columns.Add("Column 1").Def(4) = 255
var_Column = Control.Columns.Add("Column 1")
with (Control)
    TemplateDef = [Dim var_Column]
    TemplateDef = var_Column
    Template = [var_Column.Def(4) = 255]
endwith
Control.Columns.Add("Column 2")
Control.Items.AddItem(0)
Control.Items.AddItem(1)
Control.Items.AddItem(2)

The equivalent sample for XBasic in A5, is as follows:

Dim Control as P
Dim var_Column as P

Control = topparent:CONTROL_ACTIVEX1.activex
' Control.Columns.Add("Column 1").Def(4) = 255
var_Column = Control.Columns.Add("Column 1")
Control.TemplateDef = "Dim var_Column"
Control.TemplateDef = var_Column
Control.Template = "var_Column.Def(4) = 255"

Control.Columns.Add("Column 2")
Control.Items.AddItem(0)
Control.Items.AddItem(1)
Control.Items.AddItem(2)

The samples just call the Column.Def(4) = Value, using the TemplateDef. The first call of TemplateDef property is "Dim var_Column", which indicates that the next call of the TemplateDef will defines the value of the variable var_Column, in other words, it defines the object var_Column. The last call of the Template property uses the var_Column member to use the x-script and so to set the Def property so a new color is being assigned to the column.

The TemplateDef, Template and ExecuteTemplate support x-script language ( Template script of the Exontrols ), like explained bellow:

The Template or x-script is composed by lines of instructions. Instructions are separated by "\n\r" ( newline characters ) or ";" character. The ; character may be available only for newer versions of the components.

An x-script instruction/line can be one of the following:

  • Dim list of variables Declares the variables. Multiple variables are separated by commas. ( Sample: Dim h, h1, h2 )
  • variable = property( list of arguments ) Assigns the result of the property to a variable. The "variable" is the name of a declared variable. The "property" is the property name of the object in the context. The "list or arguments" may include variables or values separated by commas. ( Sample: h = InsertItem(0,"New Child") )
  • property( list of arguments ) = value Changes the property. The value can be a variable, a string, a number, a boolean value or a RGB value.
  • method( list of arguments ) Invokes the method. The "list or arguments" may include variables or values separated by commas.
  • { Beginning the object's context. The properties or methods called between { and } are related to the last object returned by the property prior to { declaration.
  • } Ending the object's context
  • object. property( list of arguments ).property( list of arguments ).... The .(dot) character splits the object from its property. For instance, the Columns.Add("Column1").HeaderBackColor = RGB(255,0,0), adds a new column and changes the column's header back color.

The x-script may uses constant expressions as follow:

  • boolean expression with possible values as True or False
  • numeric expression may starts with 0x which indicates a hexa decimal representation, else it should starts with digit, or +/- followed by a digit, and . is the decimal separator. Sample: 13 indicates the integer 13, or 12.45 indicates the double expression 12,45
  • date expression is delimited by # character in the format #mm/dd/yyyy hh:mm:ss#. Sample: #31/12/1971# indicates the December 31, 1971
  • string expression is delimited by " or ` characters. If using the ` character, please make sure that it is different than ' which allows adding comments inline. Sample: "text" indicates the string text.

Also , the template or x-script code may support general functions as follows:

  • Me property indicates the original object.
  • RGB(R,G,B) property retrieves an RGB value, where the R, G, B are byte values that indicates the R G B values for the color being specified. For instance, the following code changes the control's background color to red: BackColor = RGB(255,0,0)
  • LoadPicture(file) property loads a picture from a file or from BASE64 encoded strings, and returns a Picture object required by the picture properties.
  • CreateObject(progID) property creates and retrieves a single uninitialized object of the class associated with a specified program identifier.


method TemplatePut

method ExplorerBar.TemplatePut (NewVal as Variant)
Defines inside variables for the next Template/ExecuteTemplate call.

Type | Description
NewVal as Variant | A string expression that indicates the Dim declaration, or any Object expression to be assigned to previously declared variables.
The TemplatePut method / TemplateDef property has been added to allow programming languages such as dBASE Plus to set control's properties with multiple parameters. It is known that programming languages such as dBASE Plus or XBasic from AlphaFive, does not support setting a property with multiple parameters. In other words, these programming languages does not support something like Property(Parameters) = Value, so our controls provide an alternative using the TemplateDef / TemplatePut method. The first call of the TemplateDef should be a declaration such as "Dim a,b" which means the next 2 calls of the TemplateDef defines the variables a and b. The next call should be Template or ExecuteTemplate property which can use the variable a and b being defined previously.

The TemplateDef, TemplatePut, Template and ExecuteTemplate support x-script language ( Template script of the Exontrols ), like explained bellow:

The Template or x-script is composed by lines of instructions. Instructions are separated by "\n\r" ( newline characters ) or ";" character. The ; character may be available only for newer versions of the components.

An x-script instruction/line can be one of the following:

  • Dim list of variables Declares the variables. Multiple variables are separated by commas. ( Sample: Dim h, h1, h2 )
  • variable = property( list of arguments ) Assigns the result of the property to a variable. The "variable" is the name of a declared variable. The "property" is the property name of the object in the context. The "list or arguments" may include variables or values separated by commas. ( Sample: h = InsertItem(0,"New Child") )
  • property( list of arguments ) = value Changes the property. The value can be a variable, a string, a number, a boolean value or a RGB value.
  • method( list of arguments ) Invokes the method. The "list or arguments" may include variables or values separated by commas.
  • { Beginning the object's context. The properties or methods called between { and } are related to the last object returned by the property prior to { declaration.
  • } Ending the object's context
  • object. property( list of arguments ).property( list of arguments ).... The .(dot) character splits the object from its property. For instance, the Columns.Add("Column1").HeaderBackColor = RGB(255,0,0), adds a new column and changes the column's header back color.

The x-script may uses constant expressions as follow:

  • boolean expression with possible values as True or False
  • numeric expression may starts with 0x which indicates a hexa decimal representation, else it should starts with digit, or +/- followed by a digit, and . is the decimal separator. Sample: 13 indicates the integer 13, or 12.45 indicates the double expression 12,45
  • date expression is delimited by # character in the format #mm/dd/yyyy hh:mm:ss#. Sample: #31/12/1971# indicates the December 31, 1971
  • string expression is delimited by " or ` characters. If using the ` character, please make sure that it is different than ' which allows adding comments inline. Sample: "text" indicates the string text.

Also , the template or x-script code may support general functions as follows:

  • Me property indicates the original object.
  • RGB(R,G,B) property retrieves an RGB value, where the R, G, B are byte values that indicates the R G B values for the color being specified. For instance, the following code changes the control's background color to red: BackColor = RGB(255,0,0)
  • LoadPicture(file) property loads a picture from a file or from BASE64 encoded strings, and returns a Picture object required by the picture properties.
  • CreateObject(progID) property creates and retrieves a single uninitialized object of the class associated with a specified program identifier.


property ToolTipDelay

property ExplorerBar.ToolTipDelay as Long
Specifies the time in ms that passes before the ToolTip appears.

Type | Description
Long | A long expression that specifies the time in ms that passes before the ToolTip appears.

If the ToolTipDelay or ToolTipPopDelay property is 0, the control displays no tooltips. The ToolTipPopDelay property specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control. Use the ToolTipWidth property to specify the width of the tooltip window. Use the Background(exToolTipAppearance) property indicates the visual appearance of the borders of the tooltips. Use the Background(exToolTipBackColor) property indicates the tooltip's background color. Use the Background(exToolTipForeColor) property indicates the tooltip's foreground color. Use the ToolTip property to specify the tooltip to be shown when the cursor hovers its caption. Use the ShowToolTip method to display a custom tooltip.


property ToolTipFont

property ExplorerBar.ToolTipFont as IFontDisp
Retrieves or sets the tooltip's font.

Type | Description
IFontDisp | A Font object being used to display the tooltip.
Use the ToolTipFont property to assign a font for the control's tooltip. The ToolTipPopDelay property specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control. Use the ToolTipWidth property to specify the width of the tooltip window. Use the ToolTip property to specify the tooltip to be shown when the cursor hovers its caption.


property ToolTipPopDelay

property ExplorerBar.ToolTipPopDelay as Long
Specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control.

Type | Description
Long | A long expression that specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control.

If the ToolTipDelay or ToolTipPopDelay property is 0, the control displays no tooltips. The ToolTipDelay property specifies the time in ms that passes before the ToolTip appears. Use the ToolTipWidth property to specify the width of the tooltip window. Use the ToolTipFont property to assign a font for the control's tooltip. Use the Background(exToolTipAppearance) property indicates the visual appearance of the borders of the tooltips. Use the Background(exToolTipBackColor) property indicates the tooltip's background color. Use the Background(exToolTipForeColor) property indicates the tooltip's foreground color. Use the ToolTip property to specify the tooltip to be shown when the cursor hovers its caption. Use the ShowToolTip method to display a custom tooltip.


property ToolTipWidth

property ExplorerBar.ToolTipWidth as Long
Specifies a value that indicates the width of the tooltip window, in pixels.

Type | Description
Long | A long expression that indicates the width of the tooltip window.

Use the ToolTipWidth property to change the tooltip window width. The height of the tooltip window is automatically computed based on tooltip's description. The ToolTipPopDelay property specifies the period in ms of time the ToolTip remains visible if the mouse pointer is stationary within a control. The ToolTipDelay property specifies the time in ms that passes before the ToolTip appears. Use the ToolTipFont property to assign a font for the control's tooltip. Use the Background(exToolTipAppearance) property indicates the visual appearance of the borders of the tooltips. Use the Background(exToolTipBackColor) property indicates the tooltip's background color. Use the Background(exToolTipForeColor) property indicates the tooltip's foreground color. Use the ToolTip property to specify the tooltip to be shown when the cursor hovers its caption. Use the ShowToolTip method to display a custom tooltip.


property UseVisualTheme

property ExplorerBar.UseVisualTheme as UIVisualThemeEnum
Specifies whether the control uses the current visual theme to display certain UI parts.

Type | Description
UIVisualThemeEnum | An UIVisualThemeEnum expression that specifies which UI parts of the control are shown using the current visual theme.
By default, the UseVisualTheme property is exDefaultVisualTheme, which means that all known UI parts are shown as in the current theme. The UseVisualTheme property may specify the UI parts that you need to enable or disable the current visual theme. The UI Parts are like header, filterbar, check-boxes, buttons and so on. The UseVisualTheme property has effect only a current theme is selected for your desktop. The UseVisualTheme property. Use the Appearance property of the control to provide your own visual appearance using the EBN files.

The following screen shot shows the control while the UseVisualTheme property is exDefaultVisualTheme:

since the second screen shot shows the same data as the UseVisualTheme property is exNoVisualTheme:


property Version

property ExplorerBar.Version as String
Retrieves the control's version.

Type | Description
String | A string expression that indicates the control's version.

The version property specifies the control's version. For instance, the Unicode version of the demo control could be "1.0.2.2.DEMO.UNICODE".


property VisualAppearance

property ExplorerBar.VisualAppearance as Appearance
Retrieves the control's appearance.

Type | Description
Appearance | An Appearance object that holds a collection of skins.
Use the Add method to add or replace skins to the control. The skin method, in it's simplest form, uses a single graphic file (*.ebn) assigned to a part of the control. By using a collection of objects laid over the graphic, it is possible to define which sections of the graphic will be used as borders, corners and other possible elements, fixing them to their proper position regardless of the size of the part.


Group object
The Group object holds a collection of Item objects. The Item property accesses a group object. The Group object supports the following properties and methods:

Name | Description
AddItem | Adds a new item to the group object.
Alignment | Retrieves or sets a value that indicates the caption's alignment.
AllowExpand | Specifies whether the group can be expanded or collapsed.
AllowScroll | Enables or disables scrolling the group when it is expanded or collapsed.
BackColor | Retrieves or sets the group's background color.
BackColor2 | Specifies the color at the ending boundary line of the gradient group's caption.
BackColorList | Retrieves or sets a value that indicates the background color of the list when the group is active.
BackgroundExt | Indicates additional colors, text, images that can be displayed on the header's background using the EBN string format.
BackgroundExtValue | Specifies at runtime, the value of the giving property for specified part of the background extension.
Bold | Specifies a value that indicates whether the group's caption should appear in bold.
Caption | Specifies the group's caption.
CaptionFormat | Specifies how the group's caption is displayed.
Clear | Clears the items collection.
Count | Gets the count of the items.
Expanded | Expands or collapses the group.
ForeColor | Specifies the group's foreground color.
ForeColorList | Retrieves or sets a value that indicates the foreground color of the group's list when it is active.
Height | Retrieves the height in pixels of the group's list.
Image | Specifies the index of the group's icon.
ImageAlignment | Specifies the icon's alignment.
IndentHeaderBottom | Specifies the number of pixels to indent the group's header from the bottom part.
IndentHeaderLeft | Specifies the number of pixels to indent the group's header from the left part.
IndentHeaderRight | Specifies the number of pixels to indent the group's header from the right part.
IndentHeaderTop | Specifies the number of pixels to indent the group's header from the top part.
Index | Retrieves the index of the object into the Groups collection..
Italic | Specifies a value that indicates whether the group's caption should appear in italic.
Item | Returns a specific Item from the collection.
ItemByPos | Gets the item given its position.
ItemHeight | Retrieves or sets the item's height.
Left | Specifies the distance between the left edge of the control and group's list.
Picture | Retrieves or sets a graphic to be displayed in the group's list.
PictureDisplay | Retrieves or sets a value that indicates the way how the graphic is displayed on the list's background
Position | Specifies the group's position.
RemoveItem | Removes an item given its index or given its caption.
Shortcut | Specifies the name of the shortcut which displays the group.
StrikeOut | Specifies a value that indicates whether the group's caption should appear in strikeout.
ToolTip | Specifies the group's tooltip.
Top | Specifies the distance between the top edge of the control and group's list.
Underline | Specifies a value that indicates whether the group's caption is underlined.
UserData | Specifies an extra data.
Width | Retrieves the width in pixels of the group's list.


method AddItem

method Group.AddItem (Caption as String, [Image as Variant])
Adds a new item to the group object.

Type | Description
Caption as String | A string expression that indicates the item's caption
Image as Variant | A long expression that indicates the item's icon. If missing, the item displays no icon.
Return | Description
Item | An Item object being added.

Use the AddItem method to add new items to group. Use the Add method property to add new groups to the control. The AddItem event is fired each time when a new item is added to group. Use the BeginUpdate and EndUpdate methods to maintain performance while adding new groups or new items. The Group property specifies the group that owns the item. Use the Image property to specify the item's picture. Use the Indent property to indent the item. Use the Caption property to specify the caption of the item. Use the CaptionFormat property to allow built-in HTML tags to the group's caption.

The following VB sample adds two groups and two items to each group:

With ExplorerBar1
    .BeginUpdate
    With .Groups
        With .Add("Group 1")
            .AddItem "Item 1"
            .AddItem "Item 2"
        End With
        With .Add("Group 2")
            .AddItem "Item 1"
            .AddItem "Item 2"
        End With
    End With
    .EndUpdate
End With

The following C++ sample adds two groups and two items to each group:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
m_explorerbar.BeginUpdate();
CGroups groups = m_explorerbar.GetGroups();
CGroup group1 = groups.Add( "Group 1" );
group1.AddItem( "Item 1", vtMissing );
group1.AddItem( "Item 2", vtMissing );
CGroup group2 = groups.Add( "Group 2" );
group2.AddItem( "Item 1", vtMissing );
group2.AddItem( "Item 2", vtMissing );
m_explorerbar.EndUpdate();

The following VB.NET sample adds two groups and two items to each group:

With AxExplorerBar1
    .BeginUpdate()
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1")
            .AddItem("Item 2")
        End With
        With .Add("Group 2")
            .AddItem("Item 1")
            .AddItem("Item 2")
        End With
    End With
    .EndUpdate()
End With

The following C# sample adds two groups and two items to each group:

axExplorerBar1.BeginUpdate();
EXPLORERBARLib.Group group1 = axExplorerBar1.Groups.Add("Group 1");
group1.AddItem("Item 1", null);
group1.AddItem("Item 2", null);
EXPLORERBARLib.Group group2 = axExplorerBar1.Groups.Add("Group 2");
group2.AddItem("Item 1", null);
group2.AddItem("Item 2", null);
axExplorerBar1.EndUpdate();

The following VFP sample adds two groups and two items to each group:

With thisform.ExplorerBar1
    .BeginUpdate()
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1")
            .AddItem("Item 2")
        EndWith
        With .Add("Group 2")
            .AddItem("Item 1")
            .AddItem("Item 2")
        EndWith
    EndWith
    .EndUpdate()
EndWith


property Alignment

property Group.Alignment as AlignmentEnum
Retrieves or sets a value that indicates the caption's alignment.

Type | Description
AlignmentEnum | An AlignmentEnum expression that indicates the group caption's alignment.

By default, the Alignment property is exCenter. The Alignment property aligns the group's caption. Use the Caption property to specify the caption of the group. The Alignment property doesn't align items in the group. Use the Alignment property to align an item. If you want to align the entire list of items, you can handle the AddItem event where you can change the item's alignment each time when a new item is added to group.


property AllowExpand

property Group.AllowExpand as Boolean
Specifies whether the group can be expanded or collapsed.

Type | Description
Boolean | A boolean expression that indicates whether the group ca be expanded or collapsed.

Use the AllowExpand property to disable expanding or collapsing a group. Use the Expanded property to expand or collapse programmatically a group. Use the ExpandOnClick property to specify whether the user can expand or collapse the groups by clicking the caption of the group. The control fires BeforeExpandItem event before expanding or collapsing the group. The ExpandGroup event is fired after user expands a group.


property AllowScroll

property Group.AllowScroll as Boolean
Enables or disables scrolling the group when it is expanded or collapsed.

Type | Description
Boolean | A boolean expression that specifies whether the control uses the animation when a group is expanded or collapsed.

By default, the AllowScroll property is True. Use the AllowScroll property to specify whether the group is scrolled smoothly until all items are visible when the user clicks the group's caption. Use the DelayScroll property to specify the delay used when the user selects a group. Use the AllowScroll property on False, when the group hosts an ActiveX control or another window.


property BackColor

property Group.BackColor as Color
Retrieves or sets the group's background color.

Type | Description
Color | A color expression that indicates the background color of the group's caption. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part

Use the BackColor property to specify the group's caption's background color. Use the BackColorList property to specify the background color for group's list. Use the BackColorGroup property to specify a default background color for groups. Use the <bgcolor> built in HTML tag in the Caption property to define portions of text using a specified background color. The BackgroundExt property provides unlimited options to display more colors, icons, HTML, pictures, frames to any group.

In VB.NET or C# you require the following functions until the .NET framework will provide:

You can use the following VB.NET function:
     Shared Function ToUInt32(ByVal c As Color) As UInt32
         Dim i As Long
     i = c.R
     i = i + 256 * c.G
     i = i + 256 * 256 * c.B
     ToUInt32 = Convert.ToUInt32(i)
     End Function
You can use the following C# function:
private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}

The following VB sample changes the group's background color:

With ExplorerBar1.Groups(0)
    .BackColor = vbBlue
End With

The following C++ sample changes the group's background color:

m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) ).SetBackColor( RGB(0,0,255) ) ;

The following VB.NET sample changes the group's background color:

With AxExplorerBar1.Groups(0)
    .BackColor = ToUInt32(Color.Blue)
End With

The following C# sample changes the group's background color:

axExplorerBar1.Groups[0].BackColor = ToUInt32(Color.Blue);

The following VFP sample changes the group's background color:

With thisform.ExplorerBar1.Groups(0)
    .BackColor = RGB(0,0,255)
EndWith


property BackColor2

property Group.BackColor2 as Color
Specifies the color at the ending boundary line of the gradient group's caption.

Type | Description
Color | A color expression that specifies the color at the ending boundary line of the gradient group's caption.

Use the BackColor2 property to specify the second background color when painting its background in gradient. Use the BackColor and ForeColor properties to specify the item's background and foreground colors. Use the BackColorList property to specify the default background color for the group's list. Use the BackColor property to specify the control's background color.

In VB.NET or C# you require the following functions until the .NET framework will provide:

You can use the following VB.NET function:
     Shared Function ToUInt32(ByVal c As Color) As UInt32
         Dim i As Long
     i = c.R
     i = i + 256 * c.G
     i = i + 256 * 256 * c.B
     ToUInt32 = Convert.ToUInt32(i)
     End Function
You can use the following C# function:
private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}


property BackColorList

property Group.BackColorList as Color
Retrieves or sets a value that indicates the background color of the list when the group is active.

Type | Description
Color | A color expression that indicates the background color of the group's list.

Use the BackColorList property to specify the background color for group's list. Use the BackColor property to specify the group's caption's background color. Use the BackColorGroup property to specify a default background color for groups. Use the <bgcolor> built in HTML tag in the Caption property to define portions of text using a specified background color.


property BackgroundExt

property Group.BackgroundExt as String
Indicates additional colors, text, images that can be displayed on the object's background using the EBN string format.

Type | Description
String | A String expression ( "EBN String Format" ) that defines the layout of the UI to be applied on the object's background. The syntax of EBN String Format in BNF notation is shown bellow. You can use the EBN's Builder of eXButton/COM control to define visually the EBN String Format.
By default, the BackgroundExt property is empty. Using the BackgroundExt property you have unlimited options to show any HTML text, images, colors, EBNs, patterns, frames anywhere on the object's background. For instance, let's say you need to display more colors on the object's background, or just want to display an additional caption or image to a specified location on the object's background. The EBN String Format defines the parts of the EBN to be applied on the object's background. The EBN is a set of UI elements that are built as a tree where each element is anchored to its parent element. Use the BackgroundExtValue property to change at runtime any UI property for any part that composes the EBN String Format. The BackgroundExt property is applied right after setting the object's backcolor, and before drawing the default object's captions, icons or pictures.

The following screen shot shows a few possibilities you can have using the BackgroundExt property:

Complex samples:

Easy samples:

  • "[pattern=6]", shows the BDiagonal pattern on the object's background.

  • "[frame=RGB(255,0,0),framethick]", draws a red thick-border around the object.

  • "[frame=RGB(255,0,0),framethick,pattern=6,patterncolor=RGB(255,0,0)]", draws a red thick-border around the object, with a patter inside.

  • "[[patterncolor=RGB(255,0,0)](none[(4,4,100%-8,100%-8),pattern=0x006,patterncolor=RGB(255,0,0),frame=RGB(255,0,0),framethick])]", draws a red thick-border around the object, with a patter inside, with a 4-pixels wide padding:

  • "top[4,back=RGB(0,0,255)]", draws a blue line on the top side of the object's background, of 4-pixels wide.

  • "[text=`caption`,align=0x22]", shows the caption string aligned to the bottom-right side of the object's background.

  • "[text=`<img>flag</img>`,align=0x11]" shows the flag picture and the sweden string aligned to the bottom side of the object.

  • "left[10,back=RGB(255,0,0)]", draws a red line on the left side of the object's background, of 10-pixels wide.

  • "bottom[50%,pattern=6,frame]", shows the BDiagonal pattern with a border arround on the lower-half part of the object's background.

  • "root[text=`caption <b>2`,align=0x22](client[text=`caption <b>1`,align=0x20])", shows the caption 1 aligned to the bottom-left side, and the caption 2 to the bottom-right side

The Exontrol's eXButton WYSWYG Builder helps you to generate or view the EBN String Format, in the To String field as shown in the following screen shot:

The To String field of the EBN Builder defines the EBN String Format that can be used on BackgroundExt property.

The EBN String Format syntax in BNF notation is defined like follows:

<EBN> ::= <elements> | <root> "(" [<elements>] ")"
<elements> ::= <element> [ "," <elements> ]
<root> ::= "root" [ <attributes> ] | [ <attributes> ]
<element> ::= <anchor> [ <attributes> ] [ "(" [<elements>] ")" ]
<anchor> ::= "none" | "left" | "right" | "client" | "top" | "bottom"
<attributes> ::= "[" [<client> ","] <attribute> [ "," <attributes> ] "]"
<client> ::= <expression> | <expression> "," <expression> "," <expression> "," <expression>
<expression> ::= <number> | <number> "%"
<attribute> ::= <backcolor> | <text> | <wordwrap> | <align> | <pattern> | <patterncolor> | <frame> | <framethick> | <data> | <others>
<equal> ::= "="
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<decimal> ::= <digit><decimal>
<hexadigit> ::= <digit> | "A" | "B"  "C" | "D" | "E"  "F"
<hexa> ::= <hexadigit><hexa>
<number> ::= <decimal> | "0x" <hexa>
<color> ::= <rgbcolor> | number
<rgbcolor> ::= "RGB" "(" <number> "," <number> "," <number> ")"
<string> ::= "`" <characters> "`" | "'" <characters> "'" | " <characters> "
<characters> ::= <char>|<characters>
<char> ::= <any_character_excepts_null>
<backcolor> ::= "back" <equal> <color>
<text> ::= "text" <equal> <string>
<align> ::= "align" <equal> <number>
<pattern> ::= "pattern" <equal> <number>
<patterncolor> ::= "patterncolor" <equal> <color>
<frame> ::= "frame" <equal> <color>
<data> ::= "data" <equal> <number> | <string>
<framethick> ::= "framethick"
<wordwrap> ::= "wordwrap"

Others like: pic, stretch, hstretch, vstretch, transparent, from, to are reserved for future use only.

Now, lets say we have the following request to layout the colors on the objects:

We define the BackgroundExt property such as "top[30%,back=RGB(253,218,101)],client[back=RGB(91,157,210)],none[(0%,0%,10%,100%)](top[90%,back=RGB(0,0,0)])", and it looks as:

so, if we apply to our object we got:

Now, lets say we have the following request to layout the colors on the objects:

We define BackgroundExt property such as "left[10%](top[90%,back=RGB(0,0,0)]),top[30%,back=RGB(254,217,102)],client[back=RGB(91,156,212)]", and it looks as:

so, if we apply to our object we got:


property BackgroundExtValue

property Group.BackgroundExtValue(Index as IndexExtEnum, Property as BackgroundExtPropertyEnum) as Variant
Specifies at runtime, the value of the giving property for specified part of the background extension.

Type | Description
Index as IndexExtEnum | A Long expression that defines the index of the part that composes the EBN to be accessed / changed. The following screen shot shows where you can find Index of the parts: The screen shot shows that the EBN contains 11 elements, so in this case the Index starts at 0 ( root element ) and ends on 10.
Property as BackgroundExtPropertyEnum | A BackgroundExtPropertyEnum expression that specifies the property to be changed as explained bellow.
Variant | A Variant expression that defines the part's value. The Type of the expression depending on the Property parameter as explained bellow.
Use the BackgroundExtValue property to change at runtime any UI property for any part that composes the EBN String Format. The BackgroundExtValue property has no effect if the BackgroundExt property is empty ( by default ). The idea is as follows: first you need to decide the layout of the UI to put on the object's background, using the BackgroundExt property, and next ( if required ), you can change any property of any part of the background extension to a new value. In other words, let's say you have the same layout to be applied to some of your objects, so you specify the BackgroundExt to be the same for them, and next use the BackgroundExtValue property to change particular properties ( like back-color, size, position, anchor ) for different objects.

You can access/define/change the following UI properties of the element:

  • exBackColorExt(1), Indicates the background color / EBN color to be shown on the part of the object. Sample: 255 indicates red, RGB(0,255,0) green, or 0x1000000. (Color/Numeric expression, The last 7 bits in the high significant byte of the color indicate the identifier of the skin being used )
  • exClientExt(2), Specifies the position/size of the object, depending on the object's anchor. The syntax of the exClientExt is related to the exAnchorExt value. For instance, if the object is anchored to the left side of the parent ( exAnchorExt = 1 ), the exClientExt specifies just the width of the part in pixels/percents, not including the position. In case, the exAnchorExt is client, the exClientExt has no effect. Sample: 50% indicates half of the parent, 25 indicates 25 pixels, or 50%-8 indicates 8-pixels left from the center of the parent. (String/Numeric expression)
  • exAnchorExt(3), Specifies the object's alignment relative to its parent. (Numeric expression)
  • exTextExt(4), Specifies the HTML text to be displayed on the object. (String expression)
  • exTextExtWordWrap(5), Specifies that the object is wrapping the text. The exTextExt value specifies the HTML text to be displayed on the part of the EBN object. This property has effect only if there is a text assigned to the part using the exTextExt flag. (Boolean expression)
  • exTextExtAlignment(6), Indicates the alignment of the text on the object. The exTextExt value specifies the HTML text to be displayed on the part of the EBN object. This property has effect only if there is a text assigned to the part using the exTextExt flag (Numeric expression)
  • exPatternExt(7), Indicates the pattern to be shown on the object. The exPatternColorExt specifies the color to show the pattern. (Numeric expression)
  • exPatternColorExt(8), Indicates the color to show the pattern on the object. The exPatternColorExt property has effect only if the exPatternExt property is not 0 ( empty ). The exFrameColorExt specifies the color to show the frame ( the exPatternExt property includes the exFrame or exFrameThick flag ). (Color expression)
  • exFrameColorExt(9), Indicates the color to show the border-frame on the object. This property set the Frame flag for exPatternExt property. (Color expression)
  • exFrameThickExt(11), Specifies that a thick-frame is shown around the object. This property set the FrameThick flag for exPatternExt property. (Boolean expression)
  • exUserDataExt(12), Specifies an extra-data associated with the object. (Variant expression)

For instance, having the BackgroundExt on "bottom[50%,pattern=6,frame]"

we got:

so let's change the percent of 50% to 25% like BackgroundExtValue(1,2) on "25%", where 1 indicates the first element after root, and 2 indicates the exClientExt property, we get:

In VB you should have the following syntax:

.BackgroundExt = "bottom[50%,pattern=6,frame]"
.BackgroundExtValue(exIndexExt1, exClientExt) = "25%"


property Bold

property Group.Bold as Boolean
Specifies a value that indicates whether the group's caption should appear in bold.

Type | Description
Boolean | A boolean expression that specifies whether the group's caption should appear in bold.

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the group. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the Bold property to bold an item.

The following VB sample bolds all groups:

Private Sub ExplorerBar1_AddGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    With Group
        .Bold = True
    End With
End Sub

The following C++ sample bolds all groups:

void OnAddGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    group.SetBold( TRUE );
}

The following VB.NET sample bolds all groups:

Private Sub AxExplorerBar1_AddGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent) Handles AxExplorerBar1.AddGroup
    With e.group
        .Bold = True
    End With
End Sub

The following C# sample bolds all groups:

private void axExplorerBar1_AddGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent e)
{
    e.group.Bold = true;
}

The following VFP sample bolds all groups:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    .Bold = .t.
endwith


property Caption

property Group.Caption as String
Specifies the group's caption.

Type | Description
String | A string expression that indicates the group's caption.

You can use the Add method to specify the group's caption, when the group is added to groups collection. Use the CaptionFormat property to allow built-in HTML tags in the group's caption. The control fires the ExpandGroup event when the user clicks the group's caption. The control fires the SelectGroup event when the user clicks the caption of the group. Use the Expanded property to expand a group. Use the DisplayExpandIcon property to show or hide the expand/collapse icons. Use the ExpandIcon property to specify the icons used for expanded/collapsed groups. Use the Bold, Italic, Underline or StrikeOut property to define the font for caption of the group.


property CaptionFormat

property Group.CaptionFormat as CaptionFormatEnum
Specifies how the group's caption is displayed.

Type | Description
CaptionFormatEnum | A CaptionFormatEnum expression that indicates whether the control uses built-in HTML tags.

By default, the CaptionFormat property is exText. Use the CaptionFormat property to allow built-in HTML tags to the group's caption. Use the Caption property to access the group's caption. Use the AddItem method to add a new item to the group. The Caption property supports the following built-in HTML tags:

  • <b> ... </b> displays the text in bold
  • <i> ... </i> displays the text in italics
  • <u> ... </u> underlines the text
  • <s> ... </s> Strike-through text
  • <a id;options> ... </a> displays an anchor element that can be clicked. An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link.The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The control fires the AnchorClick(AnchorID, Options) event when the user clicks the anchor element. The FormatAnchor property customizes the visual effect for anchor elements.
  • <font face;size> ... </font> displays portions of text with a different font and/or different size. For instance, the <font Tahoma;12>bit</font> draws the bit text using the Tahoma font, on size 12 pt. If the name of the font is missing, and instead size is present, the current font is used with a different size. For instance, <font ;12>bit</font> displays the bit text using the current font, but with a different size.
  • <fgcolor rrggbb> ... </fgcolor> or <fgcolor=rrggbb> ... </fgcolor> displays text with a specified foreground color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <bgcolor rrggbb> ... </bgcolor> or <bgcolor=rrggbb> ... </bgcolor> displays text with a specified background color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <solidline rrggbb> ... </solidline> or <solidline=rrggbb> ... </solidline> draws a solid-line on the bottom side of the current text-line, of specified RGB color. The <solidline> ... </solidline> draws a black solid-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <dotline rrggbb> ... </dotline> or <dotline=rrggbb> ... </dotline> draws a dot-line on the bottom side of the current text-line, of specified RGB color. The <dotline> ... </dotline> draws a black dot-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <upline> ... </upline> draws the line on the top side of the current text-line (requires <solidline> or <dotline>).
  • <r> right aligns the text
  • <c> centers the text
  • <br> forces a line-break
  • <img>number[:width]</img> inserts an icon inside the text. The number indicates the index of the icon being inserted. Use the Images method to assign a list of icons to your chart. The last 7 bits in the high significant byte of the number expression indicates the identifier of the skin being used to paint the object. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the part. The width is optional and indicates the width of the icon being inserted. Using the width option you can overwrite multiple icons getting a nice effect. By default, if the width field is missing, the width is 18 pixels.
  • <img>key[:width]</img> inserts a custom size picture into the text being previously loaded using the HTMLPicture property. The Key parameter indicates the key of the picture being displayed. The Width parameter indicates a custom size, if you require to stretch the picture, else the original size of the picture is used.
  • & glyph characters as &amp; ( & ), &lt; ( < ), &gt; ( > ), &qout; ( " ) and &#number; ( the character with specified code ), For instance, the &#8364; displays the EUR character. The & ampersand is only recognized as markup when it is followed by a known letter or a #character and a digit. For instance if you want to display <b>bold</b> in HTML caption you can use &lt;b&gt;bold&lt;/b&gt;
  • <off offset> ... </off> defines the vertical offset to display the text/element. The offset parameter defines the offset to display the element. This tag is inheritable, so the offset is keep while the associated </off> tag is found. You can use the <off offset> HTML tag in combination with the <font face;size> to define a smaller or a larger font to be displayed. For instance: Text with <font ;7><off 6>subscript displays the text such as: Text with subscript The Text with <font ;7><off -6>superscript displays the text such as: Text with subscript
  • <gra rrggbb;mode;blend> ... </gra> defines a gradient text. The text color or <fgcolor> defines the starting gradient color, while the rr/gg/bb represents the red/green/blue values of the ending color, 808080 if missing as gray. The mode is a value between 0 and 4, 1 if missing, and blend could be 0 or 1, 0 if missing. The <font> HTML tag can be used to define the height of the font. Any of the rrggbb, mode or blend field may not be specified. The <gra> with no fields, shows a vertical gradient color from the current text color to gray (808080). For instance the <font ;18><gra FFFFFF;1;1>gradient-center</gra></font> generates the following picture:
  • <out rrggbb;width> ... </out> shows the text with outlined characters, where rr/gg/bb represents the red/green/blue values of the outline color, 808080 if missing as gray, width indicates the size of the outline, 1 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><out 000000><fgcolor=FFFFFF>outlined</fgcolor></out></font> generates the following picture:
  • <sha rrggbb;width;offset> ... </sha> define a text with a shadow, where rr/gg/bb represents the red/green/blue values of the shadow color, 808080 if missing as gray, width indicates the size of shadow, 4 if missing, and offset indicates the offset from the origin to display the text's shadow, 2 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><sha>shadow</sha></font> generates the following picture:

    or <font ;31><sha 404040;5;0><fgcolor=FFFFFF>outline anti-aliasing</fgcolor></sha></font> gets:

The following VB sample adds an HTML item:

With ExplorerBar1.Groups(0)
    With .AddItem("This is an <fgcolor=000080><b>HTML</b></fgcolor> item.")
        .CaptionFormat = exHTML
    End With
End With

The following C++ sample adds an HTML item:

COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
CGroup group = m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) );
CItem item = group.AddItem( "This is an <fgcolor=000080><b>HTML</b></fgcolor> item.", vtMissing );
item.SetCaptionFormat( 1 /*exHTML*/ );

The following VB.NET sample adds an HTML item:

With AxExplorerBar1.Groups(0)
    With .AddItem("This is an <fgcolor=000080><b>HTML</b></fgcolor> item.")
        .CaptionFormat = EXPLORERBARLib.CaptionFormatEnum.exHTML
    End With
End With

The following C# sample adds an HTML item:

EXPLORERBARLib.Item item = axExplorerBar1.Groups[0].AddItem("This is an <fgcolor=000080><b>HTML</b></fgcolor> item.", null);
item.CaptionFormat = EXPLORERBARLib.CaptionFormatEnum.exHTML;

The following VFP sample adds an HTML item:

With thisform.ExplorerBar1.Groups(0)
    With .AddItem("This is an <fgcolor=000080><b>HTML</b></fgcolor> item.")
        .CaptionFormat = 1 && exHTML
    EndWith
EndWith


method Clear

method Group.Clear ()
Clears the items collection.

Type Description

Use the Clear method to clear the Items collection. Use the RemoveItem method to remove a specific item. Use the the Visible property to hide an item. The control fires the RemoveItem event when an item is removed. Use the Count property to count the items in the group. Use the Item property to access an item giving its index or by its caption. Use the ItemByPos property to get the item giving its position. Use the ItemHeight property to specify the height for all items in the group.


property Count

property Group.Count as Long
Gets the count of the items.

Type | Description
Long | A long expression that indicates the count of items in the group.

The Count property counts the items in the group. Use the Item property to access an item giving its index or by its caption. Use the ItemByPos property to get the item giving its position. Use the ItemHeight property to specify the height for all items in the group. Use the Caption property to specify the caption of the item. Use the Visible property to specify whether an item is visible or hidden.

The following VB sample enumerates the items in the group:

With ExplorerBar1.Groups(0)
    Dim i As Long
    For i = 0 To .Count - 1
        Debug.Print .Item(i).Caption
    Next
End With

The following VB sample enumerates the items in the group, as they are displayed:

With ExplorerBar1.Groups(0)
    Dim i As Long
    For i = 0 To .Count - 1
        Dim it As EXPLORERBARLibCtl.Item
        Set it = .ItemByPos(i)
        If it.Visible Then
            Debug.Print it.Caption
        End If
    Next
End With

The following C++ sample enumerates the items in the group:

CGroup group = m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) );
for ( long i = 0; i < group.GetCount(); i++ )
{
    CItem item = group.GetItem( COleVariant( long(i) ) );
    OutputDebugString( item.GetCaption() );
}

The following C++ sample enumerates the items in the group, as they are displayed:

CGroup group = m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) );
for ( long i = 0; i < group.GetCount(); i++ )
{
    CItem item = group.GetItemByPos( i );
    if ( item.GetVisible() )
        OutputDebugString( item.GetCaption() );
}

The following VB.NET sample enumerates the items in the group:

With AxExplorerBar1.Groups(0)
    Dim i As Integer
    For i = 0 To .Count - 1
        Debug.WriteLine(.Item(i).Caption())
    Next
End With

The following VB.NET sample enumerates the items in the group, as they are displayed:

With AxExplorerBar1.Groups(0)
    Dim i As Long
    For i = 0 To .Count - 1
        Dim it As EXPLORERBARLib.Item = .ItemByPos(i)
        If it.Visible Then
            Debug.WriteLine(it.Caption)
        End If
    Next
End With

The following C# sample enumerates the items in the group:

EXPLORERBARLib.Group group = axExplorerBar1.Groups[0];
for (int i = 0; i < group.Count; i++)
    System.Diagnostics.Debug.WriteLine(group[i].Caption);

The following C# sample enumerates the items in the group, as they are displayed:

EXPLORERBARLib.Group group = axExplorerBar1.Groups[0];
for (int i = 0; i < group.Count; i++)
{
    EXPLORERBARLib.Item item = group.get_ItemByPos(i);
    if ( item.Visible )
        System.Diagnostics.Debug.WriteLine(item.Caption);
}

The following VFP sample enumerates the items in the group:

With thisform.ExplorerBar1.Groups(0)
    local i
    For i = 0 To .Count - 1
        wait window nowait .Item(i).Caption
    Next
EndWith

The following VFP sample enumerates the items in the group, as they are displayed:

With thisform.ExplorerBar1.Groups(0)
    local i
    For i = 0 To .Count - 1
        local it
        it = .ItemByPos(i)
        If it.Visible Then
            wait window nowait it.Caption
        EndIf
    Next
EndWith


property Expanded

property Group.Expanded as Boolean
Expands or collapses the group.

Type | Description
Boolean | A boolean expression that indicates whether the group is expanded or collapsed.

Use the Expanded property to expand or collapse the group. Use the AllowExpand property to disable expanding or collapsing a group. The control fires BeforeExpandItem event before expanding or collapsing the group. The ExpandGroup event is fired after user expands a group. Use the ExpandOnClick property to specify whether the user can expand or collapse the groups by clicking the caption of the group.


property ForeColor

property Group.ForeColor as Color
Specifies the group's foreground color.

Type | Description
Color | A color expression that indicates the group's caption foreground color.

Use the ForeColor property to specify the group's caption foreground color. Use the ForeColorList property to specify the foreground color of the group's list. Use the ForeColorGroup property to specify the default foreground color. Use the <fgcolor> built in HTML tag in the Caption property to define portions of text using a specified foreground color.

In VB.NET or C# you require the following functions until the .NET framework will provide:

You can use the following VB.NET function:
     Shared Function ToUInt32(ByVal c As Color) As UInt32
         Dim i As Long
     i = c.R
     i = i + 256 * c.G
     i = i + 256 * 256 * c.B
     ToUInt32 = Convert.ToUInt32(i)
     End Function
You can use the following C# function:
private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}

The following VB sample changes the group's foreground color:

With ExplorerBar1.Groups(0)
    .ForeColor = vbBlue
End With

The following C++ sample changes the group's foreground color:

m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) ).SetForeColor( RGB(0,0,255) ) ;

The following VB.NET sample changes the group's foreground color:

With AxExplorerBar1.Groups(0)
    .ForeColor = ToUInt32(Color.Blue)
End With

The following C# sample changes the group's foreground color:

axExplorerBar1.Groups[0].ForeColor = ToUInt32(Color.Blue);

The following VFP sample changes the group's foreground color:

With thisform.ExplorerBar1.Groups(0)
    .ForeColor = RGB(0,0,255)
EndWith


property ForeColorList

property Group.ForeColorList as Color
Retrieves or sets a value that indicates the foreground color of the group's list when it is active.

Type | Description
Color | A color expression that indicates the group's list's foreground color.

Use the ForeColorList property to specify the foreground color for group's list. Use the ForeColor property to specify the foreground color of the group's caption. Use the ForeColor property to specify the item's foreground color. Use the ForeColor property to specify the control's foreground color. Use the <fgcolor> built in HTML tag in the Caption property to define portions of text using a specified foreground color.

In VB.NET or C# you require the following functions until the .NET framework will provide:

You can use the following VB.NET function:
     Shared Function ToUInt32(ByVal c As Color) As UInt32
         Dim i As Long
     i = c.R
     i = i + 256 * c.G
     i = i + 256 * 256 * c.B
     ToUInt32 = Convert.ToUInt32(i)
     End Function
You can use the following C# function:
private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}


property Height

property Group.Height as Long
Retrieves the height in pixels of the group's list.

Type | Description
Long | A long expression that indicates the height in pixels of the group's list.

The Left, Top, Width and Height properties determines the location of the group's list in client coordinates. Use the LayoutChanged event and Left, Top, Width and Height to host an ActiveX control. Use the BorderGroupHeight, BorderHeigth and BorderWidth properties to define the size of the groups inside the control's client area. Use the Indent property to indent an item.


property Image

property Group.Image as Variant
Specifies the index of the group's icon.

Type | Description
Variant | A long expression that indicates the index of icon being used, a string expression that indicates the base64 encoded string that holds a picture object, a Picture object. Use the eximages tool to save your picture as base64 encoded format.

Use the Image property to assign an icon or a picture to the group. Use the ImageAlignment property to align the image inside the group's header. Use the Images and ReplaceIcon methods to update the images list collection, at runtime. Use the Image property to assign a picture to an item. The GroupHeight property specifies the height of the caption for all groups, in pixels.

The following VB sample loads a collection of icons from a BASE64 encoded string:

With ExplorerBar1
    Dim s As String
    s = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF"
    s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg="
    .BeginUpdate
    .Images s
    With .Groups
        With .Add("Group 1")
            .Image = 1
        End With
    End With
    .EndUpdate
End With

The following C++ sample loads a collection of icons from a BASE64 encoded string:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
CString s("gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF");
s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg=";
m_explorerbar.BeginUpdate();
CGroups groups = m_explorerbar.GetGroups();
m_explorerbar.Images(COleVariant(s));
CGroup group = groups.Add( "Group 1" );
group.SetImage( COleVariant( (long)1 ) );
m_explorerbar.EndUpdate();

The following VB.NET sample loads a collection of icons from a BASE64 encoded string:

With AxExplorerBar1
    Dim s As String = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF"
    s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg="
    .BeginUpdate()
    .Images(s)
    With .Groups
        With .Add("Group 1")
            .Image = 1
        End With
    End With
    .EndUpdate()
End With

The following C# sample loads a collection of icons from a BASE64 encoded string:

String s = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF";
s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg=";
axExplorerBar1.BeginUpdate();
axExplorerBar1.Images(s);
EXPLORERBARLib.Group group = axExplorerBar1.Groups.Add("Group 1");
group.Image = 1;
axExplorerBar1.EndUpdate();

The following VFP sample loads a collection of icons from a BASE64 encoded string:

With thisform.ExplorerBar1
    local s
    .BeginUpdate()
       s = "gBJJgBAIEAAJAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaGEaAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwm"
    s = s + "Fw2HxGJxWLxmNx2PyGRyWTymVy2XzGZzWbzmdz2f0Gh0Wj0ml02npqAQEZ1WojWq1bA2VWh9e2TAiUO3L/AGtp++jW12tl2uwAG34+z5FJ4W65u8l26ou+5+75O45HA6er43D53f6FY6vG5HZ1vk2e08NH5G18vK+G47u67U7+fQ3XL8EZ/dN6rivPALYtnAEBuw9KaO"
    s = s + "Gjb8wQ4L1us7zeQUmbqP29z4uu3rWv++jVwo7kKus3MNRA1cOQk6SgRPEkMwu3EXRY97cJrCcRQXB7jPvCEUpm9sGQPIEMx1FcZJc40RxhI79xzEMVxpC0OwM60fN5KkhQEmTqpRFMPQdFEvxZJEeSND0iQw80TP3IsipbHUxPw3kmTTMD0RnMaYxXOrrN830rStLSYU"
    s = s + "A/koxFKE6Q3O6WT9M8MSHQ0MuXQLpSXLE3xZJUwJy8bW0W+UPT7DEnUlMEa0xHdM0fI8EzVRlPTnKcGp2/tZzjLEIwzEdNUJNdG0/X1B1JRKX1EsdN1fY1IQwm1aULQ8S0GoVeSDIs+TK/rXy6nEV23YSpWRbkq1jJ84WbcsaqLaVk081lspXaqf3AsUC1Ol1IxVVFMq"
    s = s + "pdLzXZfsNX8+qfUEs2Bxg5lJwerN7Jld7LWIz2Atc0qLB8lmKo8kCRJIACSo2QGO11hOJM2hx5oefw/nmd5wH+SZ/n4D54GecAfkAf58AOcAHmAB5AB+eAAnAAJgAGQAHnA44Aw8AbsaUjOnY+jQBtYkqSgPjmOajq+p6GkoHgBouYuPnYE5ofwAHhsR8B+3mYH4HOUH"
    s = s + "+YJ/7YPaHnGiaAg="
    With .Groups
        With .Add("Group 1")
            .Image = 1
        EndWith
    EndWith
    .EndUpdate()
EndWith

The following Template sample loads a collection of icons from a BASE64 encoded string:

BeginUpdate
Images("gBJJgBAIEAAJAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaGEaAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx2PyGRyWTymVy2XzGZzWbzmdz2f0Gh0Wj0ml02npqAQEZ1WojWq1bA2VWh9e2TAiUO3L/AGtp++jW12tl2uwAG34+z5FJ4W65u8l26ou+5+75O45HA6er43D53f6FY6vG5HZ1vk2e08NH5G18vK+G47u67U7+fQ3XL8EZ/dN6rivPALYtnAEBuw9KaOGjb8wQ4L1us7zeQUmbqP29z4uu3rWv++jVwo7kKus3MNRA1cOQk6SgRPEkMwu3EXRY97cJrCcRQXB7jPvCEUpm9sGQPIEMx1FcZJc40RxhI79xzEMVxpC0OwM60fN5KkhQEmTqpRFMPQdFEvxZJEeSND0iQw80TP3IsipbHUxPw3kmTTMD0RnMaYxXOrrN830rStLSYUA/koxFKE6Q3O6WT9M8MSHQ0MuXQLpSXLE3xZJUwJy8bW0W+UPT7DEnUlMEa0xHdM0fI8EzVRlPTnKcGp2/tZzjLEIwzEdNUJNdG0/X1B1JRKX1EsdN1fY1IQwm1aULQ8S0GoVeSDIs+TK/rXy6nEV23YSpWRbkq1jJ84WbcsaqLaVk081lspXaqf3AsUC1Ol1IxVVFMqpdLzXZfsNX8+qfUEs2Bxg5lJwerN7Jld7LWIz2Atc0qLB8lmKo8kCRJIACSo2QGO11hOJM2hx5oefw/nmd5wH+SZ/n4D54GecAfkAf58AOcAHmAB5AB+eAAnAAJgAGQAHnA44Aw8AbsaUjOnY+jQBtYkqSgPjmOajq+p6GkoHgBouYuPnYE5ofwAHhsR8B+3mYH4HOUH+YJ/7YPaHnGiaAg=")
Groups
{
    "Group 1"
    {
    Image = 1
    }
}
EndUpdate


property ImageAlignment

property Group.ImageAlignment as AlignmentEnum
Specifies the icon's alignment.

Type | Description
AlignmentEnum | An AlignmentEnum expression that indicates the alignment of the image in the group's caption.
By default, the ImageAlignment property is exLeft. Use the ImageAlignment property to align the image inside the group's caption. Use the Image property to assign an icon to the group's caption. The ImageAlignment property has no effect if the group's caption displays no image. Use the Alignment property to align the group's caption. Use the Alignment property to align the item's caption.


property IndentHeaderBottom

property Group.IndentHeaderBottom as Long
Specifies the number of pixels to indent the group's header from the bottom part.

Type | Description
Long | A long expression that specifies the number of pixels to indent the groups' header from the top side.
By default, the IndentHeaderRight property is 0. The IndentHeaderLeft property has effect only for group's caption, image and it does not affect the group's header background appearance. Use the BackColorGroup property to define a new background appearance using EBN files. Use the CP option ( copy option ) of the EBN files to define the way EBN file is arranged on the object. Use the IndentHeaderLeft property to indent the group's header from left side. Use the IndentHeaderRight property to indent the group's header from right side. Use the IndentHeaderTop property to indent the group's header from top side. Use the IndentHeaderBottom property to indent the group's header from bottom side.

The following screen shot shows the captions being displayed when indent properties has been used:

The following screen shot shows the captions being displayed when indent properties has not been used:


property IndentHeaderLeft

property Group.IndentHeaderLeft as Long
Specifies the number of pixels to indent the group's header from the left part.

Type | Description
Long | A long expression that specifies the number of pixels to indent the groups' header from the left side.
By default, the IndentHeaderLeft property is 0. The IndentHeaderLeft property has effect only for group's caption, image and it does not affect the group's header background appearance. Use the BackColorGroup property to define a new background appearance using EBN files. Use the CP option ( copy option ) of the EBN files to define the way EBN file is arranged on the object. Use the IndentHeaderLeft property to indent the group's header from left side. Use the IndentHeaderRight property to indent the group's header from right side. Use the IndentHeaderTop property to indent the group's header from top side. Use the IndentHeaderBottom property to indent the group's header from bottom side.

The following screen shot shows the captions being displayed when indent properties has been used:

The following screen shot shows the captions being displayed when indent properties has not been used:


property IndentHeaderRight

property Group.IndentHeaderRight as Long
Specifies the number of pixels to indent the group's header from the right part.

Type | Description
Long | A long expression that specifies the number of pixels to indent the groups' header from the right side.
By default, the IndentHeaderRight property is 0. The IndentHeaderLeft property has effect only for group's caption, image and it does not affect the group's header background appearance. Use the BackColorGroup property to define a new background appearance using EBN files. Use the CP option ( copy option ) of the EBN files to define the way EBN file is arranged on the object. Use the IndentHeaderLeft property to indent the group's header from left side. Use the IndentHeaderRight property to indent the group's header from right side. Use the IndentHeaderTop property to indent the group's header from top side. Use the IndentHeaderBottom property to indent the group's header from bottom side.

The following screen shot shows the captions being displayed when indent properties has been used:

The following screen shot shows the captions being displayed when indent properties has not been used:


property IndentHeaderTop

property Group.IndentHeaderTop as Long
Specifies the number of pixels to indent the group's header from the top part.

Type | Description
Long | A long expression that specifies the number of pixels to indent the groups' header from the top side.
By default, the IndentHeaderRight property is 0. The IndentHeaderLeft property has effect only for group's caption, image and it does not affect the group's header background appearance. Use the BackColorGroup property to define a new background appearance using EBN files. Use the CP option ( copy option ) of the EBN files to define the way EBN file is arranged on the object. Use the IndentHeaderLeft property to indent the group's header from left side. Use the IndentHeaderRight property to indent the group's header from right side. Use the IndentHeaderTop property to indent the group's header from top side. Use the IndentHeaderBottom property to indent the group's header from bottom side.

The following screen shot shows the captions being displayed when indent properties has been used:

The following screen shot shows the captions being displayed when indent properties has not been used:


property Index

property Group.Index as Long
Retrieves the index of the object into the Groups collection..

Type | Description
Long | A long expression that indicates the group's index into the groups collection.

Use the Index property to identify a Group object into the groups collection. Use the Caption property to specify the caption of the group. Use the Position property to specify the group's position. Use the Count property to count the groups in the control. Use the Item property to access a group by its index or by its caption. Use the ItemByPos property to retrieve the group by position.


property Italic

property Group.Italic as Boolean
Specifies a value that indicates whether the group's caption should appear in italic.

Type | Description
Boolean | A boolean expression that specifies whether the group's caption should appear in italic.

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the group. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the Italic property to make an item appear in italic.

The following VB sample makes all groups appear in italic:

Private Sub ExplorerBar1_AddGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    With Group
        .Italic = True
    End With
End Sub

The following C++ sample makes all groups appear in italic:

void OnAddGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    group.SetBold( TRUE );
}

The following VB.NET sample makes all groups appear in italic:

Private Sub AxExplorerBar1_AddGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent) Handles AxExplorerBar1.AddGroup
    With e.group
        .Italic = True
    End With
End Sub

The following C# sample makes all groups appear in italic:

private void axExplorerBar1_AddGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent e)
{
    e.group.Italic = true;
}

The following VFP sample makes all groups appear in italic:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    .Italic = .t.
endwith


property Item

property Group.Item (Index as Variant) as Item
Returns a specific Item from the collection.

Type | Description
Index as Variant | A long expression that indicates the index of the item, or a string expression that indicates the item's caption .
Item | An Item object being accessed.

Use the Item property to access items of the group. Use the Count property to get the number of items in the group. Use the ItemByPos to access items by position. Use the ItemHeight property to specify the height for all items in the group. Use the Caption property to specify the caption of the item. Use the Visible property to specify whether an item is visible or hidden.

The following VB sample enumerates the items in the group:

With ExplorerBar1.Groups(0)
    Dim i As Long
    For i = 0 To .Count - 1
        Debug.Print .Item(i).Caption
    Next
End With

The following C++ sample enumerates the items in the group:

CGroup group = m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) );
for ( long i = 0; i < group.GetCount(); i++ )
{
    CItem item = group.GetItem( COleVariant( long(i) ) );
    OutputDebugString( item.GetCaption() );
}

The following VB.NET sample enumerates the items in the group:

With AxExplorerBar1.Groups(0)
    Dim i As Integer
    For i = 0 To .Count - 1
        Debug.WriteLine(.Item(i).Caption())
    Next
End With

The following C# sample enumerates the items in the group:

EXPLORERBARLib.Group group = axExplorerBar1.Groups[0];
for (int i = 0; i < group.Count; i++)
    System.Diagnostics.Debug.WriteLine(group[i].Caption);

The following VFP sample enumerates the items in the group:

With thisform.ExplorerBar1.Groups(0)
    local i
    For i = 0 To .Count - 1
        wait window nowait .Item(i).Caption
    Next
EndWith


property ItemByPos

property Group.ItemByPos (Position as Long) as Item
Gets the item given its position.

Type | Description
Position as Long | A long expression that indicates the item's position.
Item | An Item object being accessed.

Use the ItemByPos property to access the items in the group by position. The Position property is 0 based. The Count property counts the items in the group. Use the ItemHeight property to specify the height for all items in the group. Use the Caption property to specify the caption of the item. Use the Visible property to specify whether an item is visible or hidden.

The following VB sample enumerates the items in the group, as they are displayed:

With ExplorerBar1.Groups(0)
    Dim i As Long
    For i = 0 To .Count - 1
        Dim it As EXPLORERBARLibCtl.Item
        Set it = .ItemByPos(i)
        If it.Visible Then
            Debug.Print it.Caption
        End If
    Next
End With

The following C++ sample enumerates the items in the group, as they are displayed:

CGroup group = m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) );
for ( long i = 0; i < group.GetCount(); i++ )
{
    CItem item = group.GetItemByPos( i );
    if ( item.GetVisible() )
        OutputDebugString( item.GetCaption() );
}

The following VB.NET sample enumerates the items in the group, as they are displayed:

With AxExplorerBar1.Groups(0)
    Dim i As Long
    For i = 0 To .Count - 1
        Dim it As EXPLORERBARLib.Item = .ItemByPos(i)
        If it.Visible Then
            Debug.WriteLine(it.Caption)
        End If
    Next
End With

The following C# sample enumerates the items in the group, as they are displayed:

EXPLORERBARLib.Group group = axExplorerBar1.Groups[0];
for (int i = 0; i < group.Count; i++)
{
    EXPLORERBARLib.Item item = group.get_ItemByPos(i);
    if ( item.Visible )
        System.Diagnostics.Debug.WriteLine(item.Caption);
}

The following VFP sample enumerates the items in the group, as they are displayed:

With thisform.ExplorerBar1.Groups(0)
    local i
    For i = 0 To .Count - 1
        local it
        it = .ItemByPos(i)
        If it.Visible Then
            wait window nowait it.Caption
        EndIf
    Next
EndWith


property ItemHeight

property Group.ItemHeight as Long
Retrieves or sets the item's height.

Type | Description
Long | A long expression that indicates the item's height

By default, the ItemHeight property is 24 pixels. Use the ItemHeight property to specify the height for all items in the group. The GroupHeight property specifies the height of the caption for all groups, in pixels. Use the Font property to specify the control's font. Use the SingleLine property to specify whether the caption of the items is displayed using single or multiple lines. Use the Caption property to specify the caption of the item. Use the SmallIcons property to specify the size of the icons being displayed. The AddGroup event notifies the control that a new groups is added.


property Left

property Group.Left as Long
Specifies the distance between the left edge of the control and group's list.

Type | Description
Long | A long expression that specifies the distance between the left edge of the control and group's list

The Left, Top, Width and Height properties determines the location of the group's list in client coordinates. Use the LayoutChanged event and Left, Top, Width and Height to host an ActiveX control. Use the BorderGroupHeight, BorderHeigth and BorderWidth properties to define the size of the groups inside the control's client area. Use the Indent property to indent an item.


property Picture

property Group.Picture as IPictureDisp
Retrieves or sets a graphic to be displayed in the group's list.

Type | Description
IPictureDisp | A Picture property that specifies the group's picture.

The Picture property specifies the group's background picture. Use the PictureDisplay property to determine how the picture is arranged on the group's background. Use the BackColorList property to specify the background color for the group's list. Use the BackColor property to specify the control's background color. Use the Picture property to display a picture on the control's background list.


property PictureDisplay

property Group.PictureDisplay as PictureDisplayEnum
Retrieves or sets a value that indicates the way how the graphic is displayed on the list's background

Type | Description
PictureDisplayEnum | A PictureDisplayEnum expression that indicates the way how the group's Picture is arranged.

By default, the group's PictureDisplay property is exTile. Use the PictureDisplay property to determine how the picture is arranged on the group's background. The Picture property specifies the group's background picture. Use the BackColorList property to specify the background color for the group's list. Use the BackColor property to specify the control's background color. Use the Picture property to display a picture on the control's background list.


property Position

property Group.Position as Long
Specifies the group's position.

Type | Description
Long | A long expression that indicates the group's position.

Use the Position property to arrange groups. Use the Item property to access the group giving its index or caption. Use the Caption property to get the group's caption. Use the Index property to identify a group. Use the ItemByPos property to access groups by position. The Position property is zero based. For instance, if the Position property is zero, it means first visible group. Use the Visible property to specify whether an item is visible or hidden.

The following VB sample enumerates the groups in the control, as they are displayed:

With ExplorerBar1.Groups
    Dim i As Long
    For i = 0 To .Count - 1
        With .ItemByPos(i)
            Debug.Print (.Caption)
        End With
    Next
End With

The following C++ sample enumerates the groups in the control, as they are displayed:

CGroups groups = m_explorerbar.GetGroups();
for ( long i = 0; i < groups.GetCount(); i++ )
{
    CGroup group( groups.GetItemByPos( i ) );
    OutputDebugString( group.GetCaption() );
}

The following VB.NET sample enumerates the groups in the control, as they are displayed:

With AxExplorerBar1.Groups
    Dim i As Integer
    For i = 0 To .Count - 1
        With .ItemByPos(i)
            Debug.WriteLine(.Caption)
        End With
    Next
End With

The following C# sample enumerates the groups in the control, as they are displayed:

for (int i = 0; i < axExplorerBar1.Groups.Count; i++)
{
    EXPLORERBARLib.Group g = axExplorerBar1.Groups.get_ItemByPos(i);
    System.Diagnostics.Debug.WriteLine(g.Caption);
}

The following VFP sample enumerates the groups in the control, as they are displayed:

With thisform.ExplorerBar1.Groups
    local i
    For i = 0 To .Count - 1
        With .ItemByPos(i)
            wait window nowait .Caption
        EndWith
    Next
EndWith


method RemoveItem

method Group.RemoveItem (Index as Variant)
Removes an item given its index or given its caption.

Type | Description
Index as Variant | A long expression that indicates the index of item being removed, or a string expression that indicates the item's caption being removed

Use the RemoveItem to remove items in the group. When an item is removed the RemoveItem event is fired. Use the Clear method to clear the entire collection of items in the group. Use the Visible property to specify whether the item is visible or hidden. Use the ItemByPos property to get the item giving its position. Use the ItemHeight property to specify the height for all items in the group. Use the Count property to count the items in the group. Use the Item property to access an item giving its index or by its caption.


property Shortcut

property Group.Shortcut as String
Specifies the name of the shortcut which displays the group.

Type | Description
String | A HTML expression that indicates the caption of the shortcut.
The Group objects with the same Shortcut property belongs to the same set, and displays the Shortcut caption in the control's shortcut bar. The ShowShortcutBar property specifies whether the control's shortcut bar is visible or hidden. By default, the Shortcut property is empty, so all Group in the Groups collection belongs to the same set. The shortcut bar displays the first icon in the HTML caption, if found, or it displays a custom size picture if specified using the the ShortcutPicture property. If the Shortcut has associated a custom size picture ( ShortcutPicture property ), the first icon found in the HTML caption is not displayed in the shortcut bar. The entire Shortcut caption is displayed when the shortcut is expanded. Use the ExpandShortcutCount property to expand the number of shortcuts in the control's shortcut bar.

The Shortcut property supports the following HTML tags:

  • <b> ... </b> displays the text in bold
  • <i> ... </i> displays the text in italics
  • <u> ... </u> underlines the text
  • <s> ... </s> Strike-through text
  • <a id;options> ... </a> displays an anchor element that can be clicked. An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link.The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The control fires the AnchorClick(AnchorID, Options) event when the user clicks the anchor element. The FormatAnchor property customizes the visual effect for anchor elements.
  • <font face;size> ... </font> displays portions of text with a different font and/or different size. For instance, the <font Tahoma;12>bit</font> draws the bit text using the Tahoma font, on size 12 pt. If the name of the font is missing, and instead size is present, the current font is used with a different size. For instance, <font ;12>bit</font> displays the bit text using the current font, but with a different size.
  • <fgcolor rrggbb> ... </fgcolor> or <fgcolor=rrggbb> ... </fgcolor> displays text with a specified foreground color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <bgcolor rrggbb> ... </bgcolor> or <bgcolor=rrggbb> ... </bgcolor> displays text with a specified background color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <solidline rrggbb> ... </solidline> or <solidline=rrggbb> ... </solidline> draws a solid-line on the bottom side of the current text-line, of specified RGB color. The <solidline> ... </solidline> draws a black solid-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <dotline rrggbb> ... </dotline> or <dotline=rrggbb> ... </dotline> draws a dot-line on the bottom side of the current text-line, of specified RGB color. The <dotline> ... </dotline> draws a black dot-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <upline> ... </upline> draws the line on the top side of the current text-line (requires <solidline> or <dotline>).
  • <r> right aligns the text
  • <c> centers the text
  • <br> forces a line-break
  • <img>number[:width]</img> inserts an icon inside the text. The number indicates the index of the icon being inserted. Use the Images method to assign a list of icons to your chart. The last 7 bits in the high significant byte of the number expression indicates the identifier of the skin being used to paint the object. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the part. The width is optional and indicates the width of the icon being inserted. Using the width option you can overwrite multiple icons getting a nice effect. By default, if the width field is missing, the width is 18 pixels.
  • <img>key[:width]</img> inserts a custom size picture into the text being previously loaded using the HTMLPicture property. The Key parameter indicates the key of the picture being displayed. The Width parameter indicates a custom size, if you require to stretch the picture, else the original size of the picture is used.
  • & glyph characters as &amp; ( & ), &lt; ( < ), &gt; ( > ), &qout; ( " ) and &#number; ( the character with specified code ), For instance, the &#8364; displays the EUR character. The & ampersand is only recognized as markup when it is followed by a known letter or a #character and a digit. For instance if you want to display <b>bold</b> in HTML caption you can use &lt;b&gt;bold&lt;/b&gt;
  • <off offset> ... </off> defines the vertical offset to display the text/element. The offset parameter defines the offset to display the element. This tag is inheritable, so the offset is keep while the associated </off> tag is found. You can use the <off offset> HTML tag in combination with the <font face;size> to define a smaller or a larger font to be displayed. For instance: Text with <font ;7><off 6>subscript displays the text such as: Text with subscript The Text with <font ;7><off -6>superscript displays the text such as: Text with subscript
  • <gra rrggbb;mode;blend> ... </gra> defines a gradient text. The text color or <fgcolor> defines the starting gradient color, while the rr/gg/bb represents the red/green/blue values of the ending color, 808080 if missing as gray. The mode is a value between 0 and 4, 1 if missing, and blend could be 0 or 1, 0 if missing. The <font> HTML tag can be used to define the height of the font. Any of the rrggbb, mode or blend field may not be specified. The <gra> with no fields, shows a vertical gradient color from the current text color to gray (808080). For instance the <font ;18><gra FFFFFF;1;1>gradient-center</gra></font> generates the following picture:
  • <out rrggbb;width> ... </out> shows the text with outlined characters, where rr/gg/bb represents the red/green/blue values of the outline color, 808080 if missing as gray, width indicates the size of the outline, 1 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><out 000000><fgcolor=FFFFFF>outlined</fgcolor></out></font> generates the following picture:
  • <sha rrggbb;width;offset> ... </sha> define a text with a shadow, where rr/gg/bb represents the red/green/blue values of the shadow color, 808080 if missing as gray, width indicates the size of shadow, 4 if missing, and offset indicates the offset from the origin to display the text's shadow, 2 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><sha>shadow</sha></font> generates the following picture:

    or <font ;31><sha 404040;5;0><fgcolor=FFFFFF>outline anti-aliasing</fgcolor></sha></font> gets:


property StrikeOut

property Group.StrikeOut as Boolean
Specifies a value that indicates whether the group's caption should appear in strikeout.

Type | Description
Boolean | A boolean expression that specifies whether the group's caption should appear in strikeout.

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the group. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the StrikeOut property to specify whether the item's font is displayed with a horizontal line through it.

The following VB sample specify that all groups should appear in strikeout:

Private Sub ExplorerBar1_AddGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    With Group
        .StrikeOut = True
    End With
End Sub

The following C++ sample specify that all groups should appear in strikeout:

void OnAddGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    group.SetStrikeOut( TRUE );
}

The following VB.NET sample specify that all groups should appear in strikeout:

Private Sub AxExplorerBar1_AddGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent) Handles AxExplorerBar1.AddGroup
    With e.group
        .StrikeOut = True
    End With
End Sub

The following C# sample specify that all groups should appear in strikeout:

private void axExplorerBar1_AddGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent e)
{
    e.group.StrikeOut = true;
}

The following VFP sample specify that all groups should appear in strikeout:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    .StrikeOut = .t.
endwith


property ToolTip

property Group.ToolTip as Variant
Specifies the group's tooltip.

Type | Description
Variant | A string expression that indicates the group's tooltip.

By default, the group's tooltip is empty. If the ToolTip property is empty the control displays no tooltip when the cursor hovers the group's caption. The ToolTip shows up when the cursor hovers the group's caption. Use the ToolTipDelay to specify the time in ms that passes before the ToolTip appears. In this case no tooltip is displayed when cursor is over the group's caption. Use the ToolTipWidth property to specify the width of the tooltip window. The ToolTip supports built-in HTML format as described here.


property Top

property Group.Top as Long
Specifies the distance between the top edge of the control and group's list.

Type | Description
Long | A long expression that indicates the distance between the top edge of the control and group's list.

The Left, Top, Width and Height properties determines the location of the group's list in client coordinates. Use the LayoutChanged event and Left, Top, Width and Height to host an ActiveX control. Use the BorderGroupHeight, BorderHeigth and BorderWidth properties to define the size of the groups inside the control's client area. Use the Indent property to indent an item.


property Underline

property Group.Underline as Boolean
Specifies a value that indicates whether the group's caption is underlined.

Type | Description
Boolean | A boolean expression that specifies whether the group's caption is underlined.

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the group. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the Underline property to underline an item.

The following VB sample underlines all groups:

Private Sub ExplorerBar1_AddGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    With Group
        .Underline = True
    End With
End Sub

The following C++ sample underlines all groups:

void OnAddGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    group.SetUnderline( TRUE );
}

The following VB.NET sample underlines all groups:

Private Sub AxExplorerBar1_AddGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent) Handles AxExplorerBar1.AddGroup
    With e.group
        .Underline = True
    End With
End Sub

The following C# sample underlines all groups:

private void axExplorerBar1_AddGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent e)
{
    e.group.Underline = true;
}

The following VFP sample underlines all groups:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    .Underline = .t.
endwith


property UserData

property Group.UserData as Variant
Specifies an extra data.

Type | Description
Variant | A Variant that indicates the item's extra data

The UserData property associates an extra data to the item. The UserData property is not used by the control. The UserData are of Variant type, so you will be able to save here what ever you want: numbers, objects, strings, and so on. Use the RemoveGroup event to release any extra data associated to the group, if case.


property Width

property Group.Width as Long
Retrieves the width in pixels of the group's list.

Type | Description
Long | A long expression that indicates the width in pixels of the group's list

The Left, Top, Width and Height properties determines the location of the group's list in client coordinates. Use the LayoutChanged event and Left, Top, Width and Height to host an ActiveX control. Use the BorderGroupHeight, BorderHeigth and BorderWidth properties to define the size of the groups inside the control's client area. Use the Indent property to indent an item.


Groups object
The Groups collection contains a collection of Group objects. Each Group object contains a collection of Item objects. The Groups property retrieves the control's Groups collection.

Name | Description
Add | Adds a Group object to the collection and returns a reference to the newly created object.
Clear | Removes all objects in the collection.
Count | Returns the number of objects in the collection.
Item | Returns a specific Group from the collection.
ItemByPos | Retrieves the group given its position.
Remove | Removes a specific member from the collection.


method Add

method Groups.Add (Caption as String)
Adds a Group object to the collection and returns a reference to the newly created object.

Type | Description
Caption as String | A string expression that indicates the group's caption. The Caption supports built-in HTML format as described here, if the CaptionFormat property is exHTML.
Return | Description
Group | A Group object being added to Groups collection.
The Add method adds a new Group object to Groups collection. The AddGroup event is fired each time when a new group is added to Groups collection. Use the AddItem method to add new items to the group. The caption may contain built-in HTML tags, if the CaptionFormat property is exHTML. Use the Caption property to access the group's caption. Use the Image property to display a picture in the caption of the group. Use the BeginUpdate and EndUpdate methods to maintain performance while adding new groups or new items. Use the Position property to specify the position of the group.

The following VB sample adds two groups and two items to each group:

With ExplorerBar1
    .BeginUpdate
    With .Groups
        With .Add("Group 1")
            .AddItem "Item 1"
            .AddItem "Item 2"
        End With
        With .Add("Group 2")
            .AddItem "Item 1"
            .AddItem "Item 2"
        End With
    End With
    .EndUpdate
End With

The following C++ sample adds two groups and two items to each group:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
m_explorerbar.BeginUpdate();
CGroups groups = m_explorerbar.GetGroups();
CGroup group1 = groups.Add( "Group 1" );
group1.AddItem( "Item 1", vtMissing );
group1.AddItem( "Item 2", vtMissing );
CGroup group2 = groups.Add( "Group 2" );
group2.AddItem( "Item 1", vtMissing );
group2.AddItem( "Item 2", vtMissing );
m_explorerbar.EndUpdate();

The following VB.NET sample adds two groups and two items to each group:

With AxExplorerBar1
    .BeginUpdate()
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1")
            .AddItem("Item 2")
        End With
        With .Add("Group 2")
            .AddItem("Item 1")
            .AddItem("Item 2")
        End With
    End With
    .EndUpdate()
End With

The following C# sample adds two groups and two items to each group:

axExplorerBar1.BeginUpdate();
EXPLORERBARLib.Group group1 = axExplorerBar1.Groups.Add("Group 1");
group1.AddItem("Item 1", null);
group1.AddItem("Item 2", null);
EXPLORERBARLib.Group group2 = axExplorerBar1.Groups.Add("Group 2");
group2.AddItem("Item 1", null);
group2.AddItem("Item 2", null);
axExplorerBar1.EndUpdate();

The following VFP sample adds two groups and two items to each group:

With thisform.ExplorerBar1
    .BeginUpdate()
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1")
            .AddItem("Item 2")
        EndWith
        With .Add("Group 2")
            .AddItem("Item 1")
            .AddItem("Item 2")
        EndWith
    EndWith
    .EndUpdate()
EndWith


method Clear

method Groups.Clear ()
Removes all objects in the collection.

Type Description

Use the Clear method to clear the Groups collection. Use the Remove method to remove a specific group. The RemoveGroup event is fired when user removes a group. Use the RemoveGroup event to release any extra data that you have associated to a group. When removing a group, all items inside are removed too. Use the RemoveItem method to remove an item. Use the GroupHeight property to specify the height of the group's caption.


property Count

property Groups.Count as Long
Returns the number of objects in the collection.

Type | Description
Long | A long expression that specifies the count of Group objects into Groups collection.

Counts the Group objects in the Groups collection. Use the Item property to access the group giving its index or caption. Use the Caption property to get the group's caption. Use the Index property to specify the index of the group. Use the ItemByPos property to retrieve a group by its position. Use the Position property to specify the group's position.

The following VB sample enumerates the groups in the control:

With ExplorerBar1.Groups
    Dim i As Long
    For i = 0 To .Count - 1
        With .Item(i)
            Debug.Print (.Caption)
        End With
    Next
End With

The following VB sample enumerates the groups in the control:

Dim g As EXPLORERBARLibCtl.Group
For Each g In ExplorerBar1.Groups
    Debug.Print g.Caption
Next

The following C++ sample enumerates the groups in the control:

CGroups groups = m_explorerbar.GetGroups();
for ( long i = 0; i < groups.GetCount(); i++ )
{
    CGroup group( groups.GetItem( COleVariant( long(i) ) ) );
    OutputDebugString( group.GetCaption() );
}

The following VB.NET sample enumerates the groups in the control:

With AxExplorerBar1.Groups
    Dim i As Integer
    For i = 0 To .Count - 1
        With .Item(i)
            Debug.WriteLine(.Caption)
        End With
    Next
End With

The following VB.NET sample enumerates the groups in the control:

Dim g As EXPLORERBARLib.Group
For Each g In AxExplorerBar1.Groups
    Debug.WriteLine(g.Caption)
Next

The following C# sample enumerates the groups in the control:

for (int i = 0; i < axExplorerBar1.Groups.Count; i++)
{
    EXPLORERBARLib.Group g = axExplorerBar1.Groups[i];
    System.Diagnostics.Debug.WriteLine(g.Caption);
}

The following VFP sample enumerates the groups in the control:

With thisform.ExplorerBar1.Groups
    local i
    For i = 0 To .Count - 1
        With .Item(i)
            wait window nowait .Caption
        EndWith
    Next
EndWith


property Item

property Groups.Item (Index as Variant) as Group
Returns a specific Group from the collection.

Type | Description
Index as Variant | A long expression that indicates the group's index, or a string expression that indicates the group's caption.
Group | A Group object being retrieved.

Use the Item property to access a given Group object. The Item property is the default property in the Groups object, and Groups.Item(x) is similar with Groups(x). Use the Count property to count the groups in the control. Use the Caption property to get the group's caption. Use the ItemByPos property to access a Group object by its position.

The following VB sample enumerates the groups in the control:

With ExplorerBar1.Groups
    Dim i As Long
    For i = 0 To .Count - 1
        With .Item(i)
            Debug.Print (.Caption)
        End With
    Next
End With

The following VB sample enumerates the groups in the control:

Dim g As EXPLORERBARLibCtl.Group
For Each g In ExplorerBar1.Groups
    Debug.Print g.Caption
Next

The following C++ sample enumerates the groups in the control:

CGroups groups = m_explorerbar.GetGroups();
for ( long i = 0; i < groups.GetCount(); i++ )
{
    CGroup group( groups.GetItem( COleVariant( long(i) ) ) );
    OutputDebugString( group.GetCaption() );
}

The following VB.NET sample enumerates the groups in the control:

With AxExplorerBar1.Groups
    Dim i As Integer
    For i = 0 To .Count - 1
        With .Item(i)
            Debug.WriteLine(.Caption)
        End With
    Next
End With

The following VB.NET sample enumerates the groups in the control:

Dim g As EXPLORERBARLib.Group
For Each g In AxExplorerBar1.Groups
    Debug.WriteLine(g.Caption)
Next

The following C# sample enumerates the groups in the control:

for (int i = 0; i < axExplorerBar1.Groups.Count; i++)
{
    EXPLORERBARLib.Group g = axExplorerBar1.Groups[i];
    System.Diagnostics.Debug.WriteLine(g.Caption);
}

The following VFP sample enumerates the groups in the control:

With thisform.ExplorerBar1.Groups
    local i
    For i = 0 To .Count - 1
        With .Item(i)
            wait window nowait .Caption
        EndWith
    Next
EndWith


property ItemByPos

property Groups.ItemByPos (Position as Long) as Group
Retrieves the group given its position.

Type | Description
Position as Long | A long expression that indicates the position of the requested group
Group | A Group object being accessed by its position.

Use the ItemByPos property to access the Group object by its position. Use the Position property to specify the group's position. Use the Caption property to get the group's caption. Use the Item property to access a given Group object. Use the Count property to count the groups in the control.

The following VB sample enumerates the groups in the control, as they are displayed:

With ExplorerBar1.Groups
    Dim i As Long
    For i = 0 To .Count - 1
        With .ItemByPos(i)
            Debug.Print (.Caption)
        End With
    Next
End With

The following C++ sample enumerates the groups in the control, as they are displayed:

CGroups groups = m_explorerbar.GetGroups();
for ( long i = 0; i < groups.GetCount(); i++ )
{
    CGroup group( groups.GetItemByPos( i ) );
    OutputDebugString( group.GetCaption() );
}

The following VB.NET sample enumerates the groups in the control, as they are displayed:

With AxExplorerBar1.Groups
    Dim i As Integer
    For i = 0 To .Count - 1
        With .ItemByPos(i)
            Debug.WriteLine(.Caption)
        End With
    Next
End With

The following C# sample enumerates the groups in the control, as they are displayed:

for (int i = 0; i < axExplorerBar1.Groups.Count; i++)
{
    EXPLORERBARLib.Group g = axExplorerBar1.Groups.get_ItemByPos(i);
    System.Diagnostics.Debug.WriteLine(g.Caption);
}

The following VFP sample enumerates the groups in the control, as they are displayed:

With thisform.ExplorerBar1.Groups
    local i
    For i = 0 To .Count - 1
        With .ItemByPos(i)
            wait window nowait .Caption
        EndWith
    Next
EndWith


method Remove

method Groups.Remove (Index as Variant)
Removes a specific member from the collection.

Type | Description
Index as Variant | A long expression that indicates the the group's index, or a string expression that indicates the group's caption.

Use the Remove method to remove a specific Group object. The RemoveGroup event is fired when the user removes a group. Use the Clear method to clear the entire Groups collection. The items in a group are removed too, when the Groups is removed. Use the RemoveItem method to remove an item from the group. Use the Index property to retrieve the index of the group. Use the Caption property to specify the caption of the group.


Item object
The Item object holds information about the control's item. The Item object supports the following properties:

Name | Description
Alignment | Specifies the item's alignment.
AllowHighLight | Specifies whether the item can be marked as highlighted.
BackColor | Retrieves or sets the item's background color.
BackColor2 | Specifies the color at the ending boundary line of the gradient item's caption.
BackgroundExt | Indicates additional colors, text, images that can be displayed on the item's background using the EBN string format.
BackgroundExtValue | Specifies at runtime, the value of the giving property for specified part of the background extension.
Bold | Specifies whether the item's caption should appear in bold.
Caption | Specifies the item's caption.
CaptionFormat | Specifies how the item's caption is displayed.
ForeColor | Specifies the item's foreground color.
Group | Gets the owner group.
Image | Specifies the item's icon.
ImageAlignment | Specifies the icon's alignment.
Indent | Specifies the amount in pixels of the item's indent.
Index | Gets the index of the item.
Italic | Specifies whether the item's caption should appear in italic.
Position | Specifies the item's position.
SingleLine | Specifies whether the caption is displayed using one or multiple lines.
StrikeOut | Specifies whether the item's caption should appear in strikeout.
ToolTip | Specifies the item's tooltip.
Underline | Specifies whether the item's caption is underlined.
UserData | Associates an extra data to the object.
Visible | Specifies whether the item is visible or hidden.


property Alignment

property Item.Alignment as AlignmentEnum
Specifies the item's alignment.

Type | Description
AlignmentEnum | An AlignmentEnum expression that indicates the item's alignment.

By default, the item's alignment is exCenter. Use the AddItem event to change the alignment for all items into a group, like in the following samples. Use the ItemHeight property to specify the height for all items in the control. Use the Image property to assign a picture to an item. Use the Caption property to specify the caption of the item.

The following VB sample changes the item's alignment when a new items is added to the first group:

Private Sub ExplorerBar1_AddItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    With Item
        If (.Group.Index = 0) Then
            .Alignment = exRight
        End If
    End With
End Sub

The following C++ sample changes the item's alignment when a new items is added to the first group:

void OnAddItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    if ( item.GetGroup().GetIndex() == 0 )
        item.SetAlignment( 2 /*exRight*/ );
}

The following VB.NET sample changes the item's alignment when a new items is added to the first group:

Private Sub AxExplorerBar1_AddItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent) Handles AxExplorerBar1.AddItem
    With e.item
        If (.Group.Index = 0) Then
            .Alignment = EXPLORERBARLib.AlignmentEnum.exRight
        End If
    End With
End Sub

The following C# sample changes the item's alignment when a new items is added to the first group:

private void axExplorerBar1_AddItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent e)
{
    if (e.item.Group.Index == 0)
        e.item.Alignment = EXPLORERBARLib.AlignmentEnum.exRight;
}

The following VFP sample changes the item's alignment when a new items is added to the first group:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    If (.Group.Index = 0) Then
        .Alignment = 2 && exRight
    EndIf
endwith


property AllowHighLight

property Item.AllowHighLight as Boolean
Specifies whether the item can be marked as highlighted.

Type | Description
Boolean | A boolean expression that specifies specifies whether the item can be marked as highlighted.

By default, the AllowHighLight property is True. Use the AllowHighLight property to avoid highlighting an item when the cursor hovers it. An item gets highlighted when the AllowHighLight property is True, and the mouse hovers the item. Use the HighlightItemType property to specify the way how the control marks the highlighted item. The control fires the HighLightItem event when the cursor hovers an item. Use the HyperLinkColor property to specify the foreground color when the cursor hovers the item. Use the ForeColor property to specify the item's foreground color. Use the Underline property to underline an item. Use the HandCursor property to show the hand cursor when the cursor hovers the item.


property BackColor

property Item.BackColor as Color
Retrieves or sets the item's background color.

Type | Description
Color | A color expression that indicates the item's background color. The last 7 bits in the high significant byte of the color to indicates the identifier of the skin being used. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the background's part

Use the BackColor and ForeColor properties to specify the item's background and foreground colors. Use the BackColorList property to specify the default background color for the group's list. Use the BackColor2 property to specify the second background color when painting its background in gradient. Use the BackColor property to specify the control's background color. Use the <bgcolor> built in HTML tag in the Caption property to define portions of text using a specified background color. The BackgroundExt property provides unlimited options to display more colors, icons, HTML, pictures, frames to any item.

In VB.NET or C# you require the following functions until the .NET framework will provide:

You can use the following VB.NET function:
     Shared Function ToUInt32(ByVal c As Color) As UInt32
         Dim i As Long
     i = c.R
     i = i + 256 * c.G
     i = i + 256 * 256 * c.B
     ToUInt32 = Convert.ToUInt32(i)
     End Function
You can use the following C# function:
private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}

The following VB sample changes the item's background color:

With ExplorerBar1.Groups(0).Item(0)
    .BackColor = vbBlue
End With

The following C++ sample changes the item's background color:

m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) ).GetItem( COleVariant( long(0) ) ).SetBackColor( RGB(0,0,255) ) ;

The following VB.NET sample changes the item's background color:

With AxExplorerBar1.Groups(0).Item(0)
    .BackColor = ToUInt32(Color.Blue)
End With

The following C# sample changes the item's background color:

axExplorerBar1.Groups[0][0].BackColor = ToUInt32(Color.Blue);

The following VFP sample changes the item's background color:

With thisform.ExplorerBar1.Groups(0).Item(0)
    .BackColor = RGB(0,0,255)
EndWith


property BackColor2

property Item.BackColor2 as Color
Specifies the color at the ending boundary line of the gradient item's caption.

Type | Description
Color | A color expression that indicates the color at the ending boundary line of the gradient item's caption.

Use the BackColor2 property to specify the second background color when painting its background in gradient. Use the BackColor and ForeColor properties to specify the item's background and foreground colors. Use the BackColorList property to specify the default background color for the group's list. Use the BackColor property to specify the control's background color.

In VB.NET or C# you require the following functions until the .NET framework will provide:

You can use the following VB.NET function:
     Shared Function ToUInt32(ByVal c As Color) As UInt32
         Dim i As Long
     i = c.R
     i = i + 256 * c.G
     i = i + 256 * 256 * c.B
     ToUInt32 = Convert.ToUInt32(i)
     End Function
You can use the following C# function:
private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}


property BackgroundExt

property Item.BackgroundExt as String
Indicates additional colors, text, images that can be displayed on the object's background using the EBN string format.

Type | Description
String | A String expression ( "EBN String Format" ) that defines the layout of the UI to be applied on the object's background. The syntax of EBN String Format in BNF notation is shown bellow. You can use the EBN's Builder of eXButton/COM control to define visually the EBN String Format.
By default, the BackgroundExt property is empty. Using the BackgroundExt property you have unlimited options to show any HTML text, images, colors, EBNs, patterns, frames anywhere on the object's background. For instance, let's say you need to display more colors on the object's background, or just want to display an additional caption or image to a specified location on the object's background. The EBN String Format defines the parts of the EBN to be applied on the object's background. The EBN is a set of UI elements that are built as a tree where each element is anchored to its parent element. Use the BackgroundExtValue property to change at runtime any UI property for any part that composes the EBN String Format. The BackgroundExt property is applied right after setting the object's backcolor, and before drawing the default object's captions, icons or pictures.

The following screen shot shows a few possibilities you can have using the BackgroundExt property:

Easy samples:

  • "[pattern=6]", shows the BDiagonal pattern on the object's background.

  • "[frame=RGB(255,0,0),framethick]", draws a red thick-border around the object.

  • "[frame=RGB(255,0,0),framethick,pattern=6,patterncolor=RGB(255,0,0)]", draws a red thick-border around the object, with a patter inside.

  • "[[patterncolor=RGB(255,0,0)](none[(4,4,100%-8,100%-8),pattern=0x006,patterncolor=RGB(255,0,0),frame=RGB(255,0,0),framethick])]", draws a red thick-border around the object, with a patter inside, with a 4-pixels wide padding:

  • "top[4,back=RGB(0,0,255)]", draws a blue line on the top side of the object's background, of 4-pixels wide.

  • "[text=`caption`,align=0x22]", shows the caption string aligned to the bottom-right side of the object's background.

  • "[text=`<img>flag</img>`,align=0x11]" shows the flag picture and the sweden string aligned to the bottom side of the object.

  • "left[10,back=RGB(255,0,0)]", draws a red line on the left side of the object's background, of 10-pixels wide.

  • "bottom[50%,pattern=6,frame]", shows the BDiagonal pattern with a border arround on the lower-half part of the object's background.

  • "root[text=`caption <b>2`,align=0x22](client[text=`caption <b>1`,align=0x20])", shows the caption 1 aligned to the bottom-left side, and the caption 2 to the bottom-right side

The Exontrol's eXButton WYSWYG Builder helps you to generate or view the EBN String Format, in the To String field as shown in the following screen shot:

The To String field of the EBN Builder defines the EBN String Format that can be used on BackgroundExt property.

The EBN String Format syntax in BNF notation is defined like follows:

<EBN> ::= <elements> | <root> "(" [<elements>] ")"
<elements> ::= <element> [ "," <elements> ]
<root> ::= "root" [ <attributes> ] | [ <attributes> ]
<element> ::= <anchor> [ <attributes> ] [ "(" [<elements>] ")" ]
<anchor> ::= "none" | "left" | "right" | "client" | "top" | "bottom"
<attributes> ::= "[" [<client> ","] <attribute> [ "," <attributes> ] "]"
<client> ::= <expression> | <expression> "," <expression> "," <expression> "," <expression>
<expression> ::= <number> | <number> "%"
<attribute> ::= <backcolor> | <text> | <wordwrap> | <align> | <pattern> | <patterncolor> | <frame> | <framethick> | <data> | <others>
<equal> ::= "="
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<decimal> ::= <digit><decimal>
<hexadigit> ::= <digit> | "A" | "B"  "C" | "D" | "E"  "F"
<hexa> ::= <hexadigit><hexa>
<number> ::= <decimal> | "0x" <hexa>
<color> ::= <rgbcolor> | number
<rgbcolor> ::= "RGB" "(" <number> "," <number> "," <number> ")"
<string> ::= "`" <characters> "`" | "'" <characters> "'" | " <characters> "
<characters> ::= <char>|<characters>
<char> ::= <any_character_excepts_null>
<backcolor> ::= "back" <equal> <color>
<text> ::= "text" <equal> <string>
<align> ::= "align" <equal> <number>
<pattern> ::= "pattern" <equal> <number>
<patterncolor> ::= "patterncolor" <equal> <color>
<frame> ::= "frame" <equal> <color>
<data> ::= "data" <equal> <number> | <string>
<framethick> ::= "framethick"
<wordwrap> ::= "wordwrap"

Others like: pic, stretch, hstretch, vstretch, transparent, from, to are reserved for future use only.


property BackgroundExtValue

property Item.BackgroundExtValue(Index as IndexExtEnum, Property as BackgroundExtPropertyEnum) as Variant
Specifies at runtime, the value of the giving property for specified part of the background extension.

Type | Description
Index as IndexExtEnum | A Long expression that defines the index of the part that composes the EBN to be accessed / changed. The following screen shot shows where you can find Index of the parts: The screen shot shows that the EBN contains 11 elements, so in this case the Index starts at 0 ( root element ) and ends on 10.
Property as BackgroundExtPropertyEnum | A BackgroundExtPropertyEnum expression that specifies the property to be changed as explained bellow.
Variant | A Variant expression that defines the part's value. The Type of the expression depending on the Property parameter as explained bellow.
Use the BackgroundExtValue property to change at runtime any UI property for any part that composes the EBN String Format. The BackgroundExtValue property has no effect if the BackgroundExt property is empty ( by default ). The idea is as follows: first you need to decide the layout of the UI to put on the object's background, using the BackgroundExt property, and next ( if required ), you can change any property of any part of the background extension to a new value. In other words, let's say you have the same layout to be applied to some of your objects, so you specify the BackgroundExt to be the same for them, and next use the BackgroundExtValue property to change particular properties ( like back-color, size, position, anchor ) for different objects.

You can access/define/change the following UI properties of the element:

  • exBackColorExt(1), Indicates the background color / EBN color to be shown on the part of the object. Sample: 255 indicates red, RGB(0,255,0) green, or 0x1000000. (Color/Numeric expression, The last 7 bits in the high significant byte of the color indicate the identifier of the skin being used )
  • exClientExt(2), Specifies the position/size of the object, depending on the object's anchor. The syntax of the exClientExt is related to the exAnchorExt value. For instance, if the object is anchored to the left side of the parent ( exAnchorExt = 1 ), the exClientExt specifies just the width of the part in pixels/percents, not including the position. In case, the exAnchorExt is client, the exClientExt has no effect. Sample: 50% indicates half of the parent, 25 indicates 25 pixels, or 50%-8 indicates 8-pixels left from the center of the parent. (String/Numeric expression)
  • exAnchorExt(3), Specifies the object's alignment relative to its parent. (Numeric expression)
  • exTextExt(4), Specifies the HTML text to be displayed on the object. (String expression)
  • exTextExtWordWrap(5), Specifies that the object is wrapping the text. The exTextExt value specifies the HTML text to be displayed on the part of the EBN object. This property has effect only if there is a text assigned to the part using the exTextExt flag. (Boolean expression)
  • exTextExtAlignment(6), Indicates the alignment of the text on the object. The exTextExt value specifies the HTML text to be displayed on the part of the EBN object. This property has effect only if there is a text assigned to the part using the exTextExt flag (Numeric expression)
  • exPatternExt(7), Indicates the pattern to be shown on the object. The exPatternColorExt specifies the color to show the pattern. (Numeric expression)
  • exPatternColorExt(8), Indicates the color to show the pattern on the object. The exPatternColorExt property has effect only if the exPatternExt property is not 0 ( empty ). The exFrameColorExt specifies the color to show the frame ( the exPatternExt property includes the exFrame or exFrameThick flag ). (Color expression)
  • exFrameColorExt(9), Indicates the color to show the border-frame on the object. This property set the Frame flag for exPatternExt property. (Color expression)
  • exFrameThickExt(11), Specifies that a thick-frame is shown around the object. This property set the FrameThick flag for exPatternExt property. (Boolean expression)
  • exUserDataExt(12), Specifies an extra-data associated with the object. (Variant expression)

For instance, having the BackgroundExt on "bottom[50%,pattern=6,frame]"

we got:

so let's change the percent of 50% to 25% like BackgroundExtValue(1,2) on "25%", where 1 indicates the first element after root, and 2 indicates the exClientExt property, we get:

In VB you should have the following syntax:

.BackgroundExt = "bottom[50%,pattern=6,frame]"
.BackgroundExtValue(exIndexExt1, exClientExt) = "25%"


property Bold

property Item.Bold as Boolean
Specifies whether the item's caption should appear in bold.

Type | Description
Boolean | A boolean expression that indicates whether the item's caption is bold.

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the item. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the Group property to get the group that owns the item.

The following VB sample bolds all items in the first group:

Private Sub ExplorerBar1_AddItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    If (Item.Group.Index = 0) Then
        With Item
            .Bold = True
        End With
    End If
End Sub

The following C++ sample bolds all items in the first group:

void OnAddItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    if ( item.GetGroup().GetIndex() == 0 )
        item.SetBold( TRUE );
}

The following VB.NET sample bolds all items in the first group:

Private Sub AxExplorerBar1_AddItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent) Handles AxExplorerBar1.AddItem
    With e.item
        If (.Group.Index = 0) Then
            .Bold = True
        End If
    End With
End Sub

The following C# sample bolds all items in the first group:

private void axExplorerBar1_AddItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent e)
{
    if (e.item.Group.Index == 0)
        e.item.Bold = true;
}

The following VFP sample bolds all items in the first group:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    If (.Group.Index = 0) Then
        .Bold = .t.
    EndIf
endwith


property Caption

property Item.Caption as String
Specifies the item's caption.

Type | Description
String | A string expression that indicates the item's caption.

Use the Caption property to change the item's caption. Use the UserData property to associate an extra data to the item. Use the CaptionFormat property to allow built-in HTML tags in the cell's caption. Use the Bold, Italic, Underline or StrikeOut property to define the font for caption of the item. The control fires the SelectItem event when the user clicks the item. You can specify the item's caption when using the AddItem method. Use the SingleLine property to specify whether the item displays its caption using multiple lines. Use the ItemHeight property to specify the height of the items in the group. Use the <img> HTML tag to insert icons inside the cell's caption, if the CaptionFormat property is exHTML. For instance, the "some image <img>1</img> other image <img>2</img> rest of text", displays combined text and icons in the item's caption. Use the Images method to load icons at runtime.


property CaptionFormat

property Item.CaptionFormat as CaptionFormatEnum
Specifies how the item's caption is displayed.

Type | Description
CaptionFormatEnum | A CaptionFormatEnum expression that indicates whether the control uses built-in HTML tags to display the cell's caption.

Use the CaptionFormat property to allow built-in HTML tags in the cell's caption. Use the Caption property to specifies the cell's caption. By default, the CaptionFormat property is exText.

The control supports the following HTML tags:
  • <b> ... </b> displays the text in bold
  • <i> ... </i> displays the text in italics
  • <u> ... </u> underlines the text
  • <s> ... </s> Strike-through text
  • <a id;options> ... </a> displays an anchor element that can be clicked. An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link.The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The control fires the AnchorClick(AnchorID, Options) event when the user clicks the anchor element. The FormatAnchor property customizes the visual effect for anchor elements.
  • <font face;size> ... </font> displays portions of text with a different font and/or different size. For instance, the <font Tahoma;12>bit</font> draws the bit text using the Tahoma font, on size 12 pt. If the name of the font is missing, and instead size is present, the current font is used with a different size. For instance, <font ;12>bit</font> displays the bit text using the current font, but with a different size.
  • <fgcolor rrggbb> ... </fgcolor> or <fgcolor=rrggbb> ... </fgcolor> displays text with a specified foreground color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <bgcolor rrggbb> ... </bgcolor> or <bgcolor=rrggbb> ... </bgcolor> displays text with a specified background color. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <solidline rrggbb> ... </solidline> or <solidline=rrggbb> ... </solidline> draws a solid-line on the bottom side of the current text-line, of specified RGB color. The <solidline> ... </solidline> draws a black solid-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <dotline rrggbb> ... </dotline> or <dotline=rrggbb> ... </dotline> draws a dot-line on the bottom side of the current text-line, of specified RGB color. The <dotline> ... </dotline> draws a black dot-line on the bottom side of the current text-line. The rr/gg/bb represents the red/green/blue values of the color in hexa values.
  • <upline> ... </upline> draws the line on the top side of the current text-line (requires <solidline> or <dotline>).
  • <r> right aligns the text
  • <c> centers the text
  • <br> forces a line-break
  • <img>number[:width]</img> inserts an icon inside the text. The number indicates the index of the icon being inserted. Use the Images method to assign a list of icons to your chart. The last 7 bits in the high significant byte of the number expression indicates the identifier of the skin being used to paint the object. Use the Add method to add new skins to the control. If you need to remove the skin appearance from a part of the control you need to reset the last 7 bits in the high significant byte of the color being applied to the part. The width is optional and indicates the width of the icon being inserted. Using the width option you can overwrite multiple icons getting a nice effect. By default, if the width field is missing, the width is 18 pixels.
  • <img>key[:width]</img> inserts a custom size picture into the text being previously loaded using the HTMLPicture property. The Key parameter indicates the key of the picture being displayed. The Width parameter indicates a custom size, if you require to stretch the picture, else the original size of the picture is used.
  • & glyph characters as &amp; ( & ), &lt; ( < ), &gt; ( > ), &qout; ( " ) and &#number; ( the character with specified code ), For instance, the &#8364; displays the EUR character. The & ampersand is only recognized as markup when it is followed by a known letter or a #character and a digit. For instance if you want to display <b>bold</b> in HTML caption you can use &lt;b&gt;bold&lt;/b&gt;
  • <off offset> ... </off> defines the vertical offset to display the text/element. The offset parameter defines the offset to display the element. This tag is inheritable, so the offset is keep while the associated </off> tag is found. You can use the <off offset> HTML tag in combination with the <font face;size> to define a smaller or a larger font to be displayed. For instance: Text with <font ;7><off 6>subscript displays the text such as: Text with subscript The Text with <font ;7><off -6>superscript displays the text such as: Text with subscript
  • <gra rrggbb;mode;blend> ... </gra> defines a gradient text. The text color or <fgcolor> defines the starting gradient color, while the rr/gg/bb represents the red/green/blue values of the ending color, 808080 if missing as gray. The mode is a value between 0 and 4, 1 if missing, and blend could be 0 or 1, 0 if missing. The <font> HTML tag can be used to define the height of the font. Any of the rrggbb, mode or blend field may not be specified. The <gra> with no fields, shows a vertical gradient color from the current text color to gray (808080). For instance the <font ;18><gra FFFFFF;1;1>gradient-center</gra></font> generates the following picture:
  • <out rrggbb;width> ... </out> shows the text with outlined characters, where rr/gg/bb represents the red/green/blue values of the outline color, 808080 if missing as gray, width indicates the size of the outline, 1 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><out 000000><fgcolor=FFFFFF>outlined</fgcolor></out></font> generates the following picture:
  • <sha rrggbb;width;offset> ... </sha> define a text with a shadow, where rr/gg/bb represents the red/green/blue values of the shadow color, 808080 if missing as gray, width indicates the size of shadow, 4 if missing, and offset indicates the offset from the origin to display the text's shadow, 2 if missing. The text color or <fgcolor> defines the color to show the inside text. The <font> HTML tag can be used to define the height of the font. For instance the <font ;31><sha>shadow</sha></font> generates the following picture:

    or <font ;31><sha 404040;5;0><fgcolor=FFFFFF>outline anti-aliasing</fgcolor></sha></font> gets:


property ForeColor

property Item.ForeColor as Color
Specifies the item's foreground color.

Type | Description
Color | A color expression that indicates the item's foreground color.

Use the BackColor and ForeColor properties to specify the item's background and foreground colors. Use the ForeColorList property to specify the default foreground color for the group's list. Use the ForeColor property to specify the control's foreground color. Use the <fgcolor> built in HTML tag in the Caption property to define portions of text using a specified foreground color. Use the AllowHighLight property to avoid highlighting an item when the cursor hovers it.

In VB.NET or C# you require the following functions until the .NET framework will provide:

You can use the following VB.NET function:
     Shared Function ToUInt32(ByVal c As Color) As UInt32
         Dim i As Long
     i = c.R
     i = i + 256 * c.G
     i = i + 256 * 256 * c.B
     ToUInt32 = Convert.ToUInt32(i)
     End Function
You can use the following C# function:
private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}

The following VB sample changes the item's foreground color:

With ExplorerBar1.Groups(0).Item(0)
    .ForeColor = vbBlue
End With

The following C++ sample changes the item's foreground color:

m_explorerbar.GetGroups().GetItem( COleVariant( long(0) ) ).GetItem( COleVariant( long(0) ) ).SetForeColor( RGB(0,0,255) ) ;

The following VB.NET sample changes the item's foreground color:

With AxExplorerBar1.Groups(0).Item(0)
    .ForeColor = ToUInt32(Color.Blue)
End With

The following C# sample changes the item's foreground color:

axExplorerBar1.Groups[0][0].ForeColor = ToUInt32(Color.Blue);

The following VFP sample changes the item's foreground color:

With thisform.ExplorerBar1.Groups(0).Item(0)
    .ForeColor = RGB(0,0,255)
EndWith


property Group

property Item.Group as Group
Gets the owner group.

Type | Description
Group | A Group object that's the owner of the item.

The Group property specify the owner group for the item. Use the AddItem method to add new items to a group. Use the Item property to retrieve an item from a group giving its index or its caption. Use the ItemByPos property to retrieve an item from a group giving its position. Use the Position property to specify the item's position. Use the RemoveItem property to remove an item from a group.


property Image

property Item.Image as Variant
Specifies the item's icon.

Type | Description
Variant | A long expression that indicates the index of icon being used, a string expression that indicates the base64 encoded string that holds a picture object, or a Picture object. Use the eximages tool to save your picture as base64 encoded format.

By default, the Image property is 0. The images list collection is 1 based. Use the Image property to assign an icon or a picture to an item. Use the ImageAlignment property to align the image inside the item. Use the Image parameter of the AddItem method to assign an image at adding time. Use the ReplaceIcon and Images method to change the icons list collection at runtime. At design time, the control displays an icons list window ( if the ShowImageList property is true ) where icons or resource files can be dropped. Use the ItemHeight property to specify the height for all items in the group.

The following VB sample loads a collection of icons from a BASE64 encoded string:

With ExplorerBar1
    Dim s As String
    s = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF"
    s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg="
    .BeginUpdate
    .Images s
    With .Groups
        With .Add("Group 1")
            .AddItem "Item 1", 1
            .AddItem "Item 2", 2
        End With
        With .Add("Group 2")
            .AddItem "Item 1", 2
            .AddItem "Item 2", 1
        End With
    End With
    .EndUpdate
End With

The following C++ sample loads a collection of icons from a BASE64 encoded string:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
CString s("gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF");
s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg=";
m_explorerbar.BeginUpdate();
CGroups groups = m_explorerbar.GetGroups();
m_explorerbar.Images(COleVariant(s));
CGroup group1 = groups.Add( "Group 1" );
group1.AddItem( "Item 1", COleVariant(long(1)) );
group1.AddItem( "Item 2", COleVariant(long(2)) );
CGroup group2 = groups.Add( "Group 2" );
group2.AddItem( "Item 1", COleVariant(long(3)) );
group2.AddItem( "Item 2", COleVariant(long(4)) );
m_explorerbar.EndUpdate();

The following VB.NET sample loads a collection of icons from a BASE64 encoded string:

With AxExplorerBar1
    Dim s As String = "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF"
    s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg="
    .BeginUpdate()
    .Images(s)
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1", 1)
            .AddItem("Item 2", 2)
        End With
        With .Add("Group 2")
            .AddItem("Item 1", 3)
            .AddItem("Item 2", 4)
        End With
    End With
    .EndUpdate()
End With

The following C# sample loads a collection of icons from a BASE64 encoded string:

String s= "gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBvqAQEZwmCpmEwrAxlVh9dxjAiUOyb/AGHp2YjWPx9kx+KAGR0ON0VIzmU0+WluUomY1OV0eS0Wa1uF0Gd1G51VX1+g0Wzw++xuO3dG0WP3+k5WS2+U2k65uqyml3UZ6tM1+f4PbxeN7Xd2XDmedjfT8Wb4uw3GW8ky13V5HL2OXw/Z52F9229+wyf0/TCvs9jWJ/AL/Pm+LJQRAzkskmj2v48r0tA6L1QGmTjvM8MNPnCkCwYlrQP7BUQurCb9wLBz4Pu8DYQwy0XQ47iYtelEBvw9EBRzA0RQtED8Q8+TgQA6sPw+lkKR46TLRNIcdOFBsephAsntgzDMRhGEaJfLTrRW/kVSc+sopXLEgvlDswPm0sttZEsZSTA0SR0nDesPMrmPxK75RRNkdQfOUKznNMQvHIkzTxJsWvOnTr0bJcZPW+b+zpL0izPPNMS7P0xpdPixTrRNQTU+Sa0dL8wv/Lqg0tDcPytH7ro059SzTAsHqpUVbQynNI17Ns5qPVlRzww0bpXV6fV09KuO/QKWzXAlBWAqVhOBYtrvpbFZp5Liy27BTTV+yF";
s = s + "FphZDEJtT1zp7bd1XasiLB8ld4o8kCRJIACSpRfNKWXd1uH+eaHn8P55necB/kmf5+A+eBnnAH5AH+fADnAB5gAeQAfngAJwACYABkAB5wNCAL8AG2WSozlJAX2AbDJKkoD3xfGWABmWXY8koHgBkGGNDiwE4efwAHhnx8B+y2Fn4HOBn+YJ/6QPaHnGiaAg=";
axExplorerBar1.BeginUpdate();
axExplorerBar1.Images(s);
EXPLORERBARLib.Group group1 = axExplorerBar1.Groups.Add("Group 1");
group1.AddItem("Item 1", 1);
group1.AddItem("Item 2", 2);
EXPLORERBARLib.Group group2 = axExplorerBar1.Groups.Add("Group 2");
group2.AddItem("Item 1", 3);
group2.AddItem("Item 2", 4);
axExplorerBar1.EndUpdate();

The following VFP sample loads a collection of icons from a BASE64 encoded string:

With thisform.ExplorerBar1
    local s
    .BeginUpdate()
       s = "gBJJgBAIEAAJAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaGEaAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwm"
    s = s + "Fw2HxGJxWLxmNx2PyGRyWTymVy2XzGZzWbzmdz2f0Gh0Wj0ml02npqAQEZ1WojWq1bA2VWh9e2TAiUO3L/AGtp++jW12tl2uwAG34+z5FJ4W65u8l26ou+5+75O45HA6er43D53f6FY6vG5HZ1vk2e08NH5G18vK+G47u67U7+fQ3XL8EZ/dN6rivPALYtnAEBuw9KaO"
    s = s + "Gjb8wQ4L1us7zeQUmbqP29z4uu3rWv++jVwo7kKus3MNRA1cOQk6SgRPEkMwu3EXRY97cJrCcRQXB7jPvCEUpm9sGQPIEMx1FcZJc40RxhI79xzEMVxpC0OwM60fN5KkhQEmTqpRFMPQdFEvxZJEeSND0iQw80TP3IsipbHUxPw3kmTTMD0RnMaYxXOrrN830rStLSYU"
    s = s + "A/koxFKE6Q3O6WT9M8MSHQ0MuXQLpSXLE3xZJUwJy8bW0W+UPT7DEnUlMEa0xHdM0fI8EzVRlPTnKcGp2/tZzjLEIwzEdNUJNdG0/X1B1JRKX1EsdN1fY1IQwm1aULQ8S0GoVeSDIs+TK/rXy6nEV23YSpWRbkq1jJ84WbcsaqLaVk081lspXaqf3AsUC1Ol1IxVVFMq"
    s = s + "pdLzXZfsNX8+qfUEs2Bxg5lJwerN7Jld7LWIz2Atc0qLB8lmKo8kCRJIACSo2QGO11hOJM2hx5oefw/nmd5wH+SZ/n4D54GecAfkAf58AOcAHmAB5AB+eAAnAAJgAGQAHnA44Aw8AbsaUjOnY+jQBtYkqSgPjmOajq+p6GkoHgBouYuPnYE5ofwAHhsR8B+3mYH4HOUH"
    s = s + "+YJ/7YPaHnGiaAg="
    With .Groups
        With .Add("Group 1")
            .AddItem("Item 1",1)
            .AddItem("Item 2",2)
        EndWith
        With .Add("Group 2")
            .AddItem("Item 1",3)
            .AddItem("Item 2",4)
        EndWith
    EndWith
    .EndUpdate()
EndWith

The following Template sample loads a collection of icons from a BASE64 encoded string:

BeginUpdate
Images("gBJJgBAIEAAJAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaGEaAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx2PyGRyWTymVy2XzGZzWbzmdz2f0Gh0Wj0ml02npqAQEZ1WojWq1bA2VWh9e2TAiUO3L/AGtp++jW12tl2uwAG34+z5FJ4W65u8l26ou+5+75O45HA6er43D53f6FY6vG5HZ1vk2e08NH5G18vK+G47u67U7+fQ3XL8EZ/dN6rivPALYtnAEBuw9KaOGjb8wQ4L1us7zeQUmbqP29z4uu3rWv++jVwo7kKus3MNRA1cOQk6SgRPEkMwu3EXRY97cJrCcRQXB7jPvCEUpm9sGQPIEMx1FcZJc40RxhI79xzEMVxpC0OwM60fN5KkhQEmTqpRFMPQdFEvxZJEeSND0iQw80TP3IsipbHUxPw3kmTTMD0RnMaYxXOrrN830rStLSYUA/koxFKE6Q3O6WT9M8MSHQ0MuXQLpSXLE3xZJUwJy8bW0W+UPT7DEnUlMEa0xHdM0fI8EzVRlPTnKcGp2/tZzjLEIwzEdNUJNdG0/X1B1JRKX1EsdN1fY1IQwm1aULQ8S0GoVeSDIs+TK/rXy6nEV23YSpWRbkq1jJ84WbcsaqLaVk081lspXaqf3AsUC1Ol1IxVVFMqpdLzXZfsNX8+qfUEs2Bxg5lJwerN7Jld7LWIz2Atc0qLB8lmKo8kCRJIACSo2QGO11hOJM2hx5oefw/nmd5wH+SZ/n4D54GecAfkAf58AOcAHmAB5AB+eAAnAAJgAGQAHnA44Aw8AbsaUjOnY+jQBtYkqSgPjmOajq+p6GkoHgBouYuPnYE5ofwAHhsR8B+3mYH4HOUH+YJ/7YPaHnGiaAg=")
Groups
{
    "Group 1"
    {
        AddItem("Item 1",1)
        AddItem("Item 2",2)
    }
    "Group 2"
    {
        AddItem("Item 1",3)
        AddItem("Item 2",4)
    }
}
EndUpdate


property ImageAlignment

property Item.ImageAlignment as AlignmentEnum
Specifies the icon's alignment.

Type | Description
AlignmentEnum | An AlignmenEnum expression that indicates the alignment of the icon inside the item.
By default, the ImageAlignment property is exLeft. Use the ImageAlignment property to align the icon inside the item. Use the Image property to assign an icon to the item. The ImageAlignment property has no effect if the item displays no image. Use the Alignment property to align an item in the group.


property Indent

property Item.Indent as Long
Specifies the amount in pixels of the item's indent.

Type | Description
Long | A long expression that specifies the amount in pixels of the item's indent.

By default, the item's indent is zero. Use the Indent property to indent items, so they look like a tree. Use the Caption property to specify the caption of the item. Use the Image property to assign a picture to an item. The Indent property indents the caption and the image too. For instance, if the item is right aligned, the indentation is on the right side of the group.


property Index

property Item.Index as Long
Gets the index of the item.

Type | Description
Long | A long expression that indicates the item's index.

The Index property gets the index of the Item object in items collection of the owner group. Use the Position property to change the item's position. The Index property is allocated when the items is added to the group's list, using the AddItem method. Use the Item property to access an item giving its index of by its caption. Use the Caption property to specify the caption of the item. Use the Image property to assign a picture to an item.


property Italic

property Item.Italic as Boolean
Specifies whether the item's caption should appear in italic.

Type | Description
Boolean | A boolean expression that indicates whether the item's caption should appear italic.

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the item. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the Group property to get the group that owns the item.

The following VB sample specifies that all items in the first group should appear in italic:

Private Sub ExplorerBar1_AddItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    If (Item.Group.Index = 0) Then
        With Item
            .Italic = True
        End With
    End If
End Sub

The following C++ sample specifies that all items in the first group should appear in italic:

void OnAddItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    if ( item.GetGroup().GetIndex() == 0 )
        item.SetItalic( TRUE );
}

The following VB.NET sample specifies that all items in the first group should appear in italic:

Private Sub AxExplorerBar1_AddItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent) Handles AxExplorerBar1.AddItem
    With e.item
        If (.Group.Index = 0) Then
            .Italic = True
        End If
    End With
End Sub

The following C# sample specifies that all items in the first group should appear in italic:

private void axExplorerBar1_AddItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent e)
{
    if (e.item.Group.Index == 0)
        e.item.Italic = true;
}

The following VFP sample specifies that all items in the first group should appear in italic:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    If (.Group.Index = 0) Then
        .Italic = .t.
    EndIf
endwith


property Position

property Item.Position as Long
Specifies the item's position.

Type | Description
Long | A long expression that indicates the item's position.

Use the Position property to change the item's position. Use the Index property to retrieve the item's index. Use the ItemByPos property to retrieve an item giving its position. Use the ItemHeight property to specify the height for all items in the group. Use the Visible property to hide an item. The control adds the item to the end of the list, when the AddItem method is called.


property SingleLine

property Item.SingleLine as Boolean
Specifies whether the caption is displayed using one or multiple lines.

Type | Description
Boolean | A boolean value that specifies whether the caption is displayed using one or multiple lines. Use the <br> HTML tag to break a line.

Use the SingleLine property displays the caption of the items using single or multiple lines. Use the Caption property to specify the caption of the items. Use the ItemHeight property to specify the height for all items in the group. Use the Font property to specify the control's font. Use the Bold, Italic, Underline or StrikeOut property to define the font for caption of the item. The GroupHeight property specifies the height of the caption for all groups, in pixels.


property StrikeOut

property Item.StrikeOut as Boolean
Specifies whether the item's caption should appear in strikeout.

Type | Description
Boolean | A boolean expression that indicates whether the item's caption should appear in strikeout

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the item. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the Group property to get the group that owns the item.

The following VB sample specifies each item in the first group displays a horizontal line through it:

Private Sub ExplorerBar1_AddItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    If (Item.Group.Index = 0) Then
        With Item
            .StrikeOut = True
        End With
    End If
End Sub

The following C++ sample specifies each item in the first group displays a horizontal line through it:

void OnAddItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    if ( item.GetGroup().GetIndex() == 0 )
        item.SetStrikeOut( TRUE );
}

The following VB.NET sample specifies each item in the first group displays a horizontal line through it:

Private Sub AxExplorerBar1_AddItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent) Handles AxExplorerBar1.AddItem
    With e.item
        If (.Group.Index = 0) Then
            .StrikeOut = True
        End If
    End With
End Sub

The following C# sample specifies each item in the first group displays a horizontal line through it:

private void axExplorerBar1_AddItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent e)
{
    if (e.item.Group.Index == 0)
        e.item.StrikeOut = true;
}

The following VFP sample specifies each item in the first group displays a horizontal line through it:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    If (.Group.Index = 0) Then
        .StrikeOut = .t.
    EndIf
endwith


property ToolTip

property Item.ToolTip as Variant
Specifies the item's tooltip.

Type | Description
Variant | A string expression that indicates the item's tooltip.

By default, the item's tooltip is "...". If the ToolTip property is empty, the control displays no tooltip when the cursor hovers the item. If the ToolTip property is "..." the control displays the item's Caption if it doesn't fit the control's client area. Use the GroupToolTip property to specify the tooltip for the group. Use the ToolTipDelay property to specify the time in ms that passes before the ToolTip appears. In this case the control displays no tooltip when the cursor is over the item. Use the ToolTipWidth property to specify the width of the tooltip window. The ToolTip supports built-in HTML format as described here.


property Underline

property Item.Underline as Boolean
Specifies whether the item's caption is underlined.

Type | Description
Boolean | A color expression that indicates whether the item's caption is underlined.

Use the Bold, Italic, Underline and StrikeOut properties to apply different font attributes to the item. Use the Caption property to display different parts of the caption using HTML format. Use the Font property to specify the control's font. Use the Group property to get the group that owns the item. Use the AllowHighLight property to avoid highlighting an item when the cursor hovers it.

The following VB sample underlines all items in the first group:

Private Sub ExplorerBar1_AddItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    If (Item.Group.Index = 0) Then
        With Item
            .Underline = True
        End With
    End If
End Sub

The following C++ sample underlines all items in the first group:

void OnAddItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    if ( item.GetGroup().GetIndex() == 0 )
        item.SetUnderline( TRUE );
}

The following VB.NET sample underlines all items in the first group:

Private Sub AxExplorerBar1_AddItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent) Handles AxExplorerBar1.AddItem
    With e.item
        If (.Group.Index = 0) Then
            .Underline = True
        End If
    End With
End Sub

The following C# sample underlines all items in the first group:

private void axExplorerBar1_AddItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent e)
{
    if (e.item.Group.Index == 0)
        e.item.Underline = true;
}

The following VFP sample underlines all items in the first group:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    If (.Group.Index = 0) Then
        .Underline = .t.
    EndIf
endwith


property UserData

property Item.UserData as Variant
Associates an extra data to the object.

Type | Description
Variant | A Variant that specifies the item's user data.
The UserData property associates an extra data to the item. The UserData property is not used by the control. The UserData are of Variant type, so you will be able to save here what ever you want: numbers, objects, strings, and so on. Use the RemoveItem event to release any extra data associated to an item, if case.


property Visible

property Item.Visible as Boolean
Specifies whether the item is visible or hidden.

Type | Description
Boolean | A boolean expression that indicates whether the item is visible or hidden.
Use the Visible property to show or hide an item. Use the Position property to specify the item's position. Use the RemoveItem method to remove an item from the group. Use the Caption property to specify the caption of the item. Use the ItemByPos property to retrieve an item giving its position. Use the Image property to add or remove an icon or a picture to the item. Use the ItemHeight property to specify the height for all items in the group.

The following VB sample hides the first item in the first group:

With ExplorerBar1.Groups(0).ItemByPos(0)
    .Visible = False
End With

The following C++ sample hides the first item in the first group:

#include "Item.h"
#include "Group.h"
#include "Groups.h"
CGroups groups = m_explorerbar.GetGroups();
CGroup group = groups.GetItem( COleVariant(long(0)) );
CItem item = group.GetItemByPos( 0 );
item.SetVisible( FALSE );

The following VB.NET sample hides the first item in the first group:

With AxExplorerBar1.Groups(0).ItemByPos(0)
    .Visible = False
End With

The following C# sample hides the first item in the first group:

axExplorerBar1.Groups[0].get_ItemByPos(0).Visible = false;

The following VFP sample hides the first item in the first group:

with thisform.ExplorerBar1
    with .Groups.Item(0)
        with .ItemByPos(0)
            .Visible = .f.
        endwith
    endwith
endwith


ExplorerBar events
The ExplorerBar component supports the following events:

Name | Description
AddGroup | Occurs when a new group is added to collection.
AddItem | Occurs when a new item is added to a group.
AnchorClick | Occurs when an anchor element is clicked.
BeforeExpandGroup | Occurs just before expanding or collapsing a group.
Click | Occurs when the user presses and then releases the left mouse button over the control.
DblClick | Occurs when the user dblclk the left mouse button over an object.
ExpandGroup | Occurs when a group is expanded or collapsed.
HighLightItem | Occurs when an item is highlighted.
KeyDown | Occurs when the user presses a key while an object has the focus.
KeyPress | Occurs when the user presses and releases an ANSI key.
KeyUp | Occurs when the user releases a key while an object has the focus.
LayoutChanged | Occurs when control's layout is changed.
MouseDown | Occurs when the user presses a mouse button.
MouseMove | Occurs when the user moves the mouse.
MouseUp | Occurs when the user releases a mouse button.
RClick | Fired when right mouse button is clicked
RemoveGroup | Fired when a group was removed.
RemoveItem | Fired when an item was removed.
ScrollButtonClick | Occurs when the user clicks a button in the scrollbar.
SelectGroup | Occurs when a group is clicked.
SelectItem | Occurs when an item is clicked.
SelectShortcut | Fired when the user selects a new shortcut.


event AddGroup

event AddGroup (Group as Group)
Occurs when a new group is added to collection.

Type | Description
Group as Group | A Group object that's added to Groups collection.

Use the AddGroup event to notify your application that a new group is added to Groups collection. The Add method adds a new group to Groups collection. Use the AddItem method to add new items to the group. Use the ItemHeight property to specify the height for all items in the group. Use the GroupHeight property to specify the height for group captions. Use the SmallIcons property to specify the size of the icons being displayed.

Syntax for AddGroup event, /NET version, on:

private void AddGroup(object sender,exontrol.EXPLORERBARLib.Group Group)
{
}

Private Sub AddGroup(ByVal sender As System.Object,ByVal Group As exontrol.EXPLORERBARLib.Group) Handles AddGroup
End Sub

Syntax for AddGroup event, /COM version, on:

private void AddGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent e)
{
}

void OnAddGroup(LPDISPATCH Group)
{
}

void __fastcall AddGroup(TObject *Sender,Explorerbarlib_tlb::IGroup *Group)
{
}

procedure AddGroup(ASender: TObject; Group : IGroup);
begin
end;

procedure AddGroup(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent);
begin
end;

begin event AddGroup(oleobject Group)
end event AddGroup

Private Sub AddGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent) Handles AddGroup
End Sub

Private Sub AddGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
End Sub

Private Sub AddGroup(ByVal Group As Object)
End Sub

LPARAMETERS Group

PROCEDURE OnAddGroup(oExplorerBar,Group)
RETURN

Syntax for AddGroup event, /COM version (others), on:

<SCRIPT EVENT="AddGroup(Group)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function AddGroup(Group)
End Function
</SCRIPT>

Procedure OnComAddGroup Variant llGroup
    Forward Send OnComAddGroup llGroup
End_Procedure

METHOD OCX_AddGroup(Group) CLASS MainDialog
RETURN NIL

void onEvent_AddGroup(COM _Group)
{
}

function AddGroup as v (Group as OLE::Exontrol.ExplorerBar.1::IGroup)
end function

function nativeObject_AddGroup(Group)
return

The following VB sample changes the group's background color when adding a new group:

Private Sub ExplorerBar1_AddGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    With Group
        .BackColor = RGB(0, 0, 255)
        .Alignment = exRight
        .ForeColor = vbWhite
    End With
End Sub

The following C++ sample changes the group's background color when adding a new group:

void OnAddGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    group.SetBackColor( RGB(0,0,255) );
    group.SetAlignment( 2 /*exRight*/ );
    group.SetForeColor( RGB(255,255,255) );
}

The following VB.NET sample changes the group's background color when adding a new group:

Private Sub AxExplorerBar1_AddGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent) Handles AxExplorerBar1.AddGroup
    With e.group
        .BackColor = ToUInt32(Color.Blue)
        .ForeColor = ToUInt32(Color.White)
        .Alignment = EXPLORERBARLib.AlignmentEnum.exRight
    End With
End Sub

where the ToUInt32 function converts a Color expression to OLE_COLOR expression,

Shared Function ToUInt32(ByVal c As Color) As UInt32
    Dim i As Long
    i = c.R
    i = i + 256 * c.G
    i = i + 256 * 256 * c.B
    ToUInt32 = Convert.ToUInt32(i)
End Function

The following C# sample changes the group's background color when adding a new group:

private void axExplorerBar1_AddGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddGroupEvent e)
{
    e.group.BackColor = ToUInt32(Color.Blue);
    e.group.ForeColor = ToUInt32(Color.White);
    e.group.Alignment = EXPLORERBARLib.AlignmentEnum.exRight;
}

where the ToUInt32 function converts a Color expression to OLE_COLOR expression,

private UInt32 ToUInt32(Color c)
{
    long i;
    i = c.R;
    i = i + 256 * c.G;
    i = i + 256 * 256 * c.B;
    return Convert.ToUInt32(i);
}

The following VFP sample changes the group's background color when adding a new group:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    .BackColor = RGB(0,0,255)
    .ForeColor = RGB(255,255,255)
    .Alignment = 2 && exRight
endwith


event AddItem

event AddItem (Item as Item)
Occurs when a new item is added to a group.

Type | Description
Item as Item | An Item object that's added to Group items collection.

Use the AddItem event to notify your application that a new Item was added to Group. Use the Group property to get the owner group of the item. The AddItem method fires the AddItem event each time when a new item is added to items of the Group. Use the Add method to add new groups to the control.

Syntax for AddItem event, /NET version, on:

private void AddItem(object sender,exontrol.EXPLORERBARLib.Item Item)
{
}

Private Sub AddItem(ByVal sender As System.Object,ByVal Item As exontrol.EXPLORERBARLib.Item) Handles AddItem
End Sub

Syntax for AddItem event, /COM version, on:

private void AddItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent e)
{
}

void OnAddItem(LPDISPATCH Item)
{
}

void __fastcall AddItem(TObject *Sender,Explorerbarlib_tlb::IItem *Item)
{
}

procedure AddItem(ASender: TObject; Item : IItem);
begin
end;

procedure AddItem(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent);
begin
end;

begin event AddItem(oleobject Item)
end event AddItem

Private Sub AddItem(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent) Handles AddItem
End Sub

Private Sub AddItem(ByVal Item As EXPLORERBARLibCtl.IItem)
End Sub

Private Sub AddItem(ByVal Item As Object)
End Sub

LPARAMETERS Item

PROCEDURE OnAddItem(oExplorerBar,Item)
RETURN

Syntax for AddItem event, /COM version (others), on:

<SCRIPT EVENT="AddItem(Item)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function AddItem(Item)
End Function
</SCRIPT>

Procedure OnComAddItem Variant llItem
    Forward Send OnComAddItem llItem
End_Procedure

METHOD OCX_AddItem(Item) CLASS MainDialog
RETURN NIL

void onEvent_AddItem(COM _Item)
{
}

function AddItem as v (Item as OLE::Exontrol.ExplorerBar.1::IItem)
end function

function nativeObject_AddItem(Item)
return

The following VB sample changes the item's alignment when a new items is added to the first group:

Private Sub ExplorerBar1_AddItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    With Item
        If (.Group.Index = 0) Then
            .Alignment = exRight
        End If
    End With
End Sub

The following C++ sample changes the item's alignment when a new items is added to the first group:

void OnAddItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    if ( item.GetGroup().GetIndex() == 0 )
        item.SetAlignment( 2 /*exRight*/ );
}

The following VB.NET sample changes the item's alignment when a new items is added to the first group:

Private Sub AxExplorerBar1_AddItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent) Handles AxExplorerBar1.AddItem
    With e.item
        If (.Group.Index = 0) Then
            .Alignment = EXPLORERBARLib.AlignmentEnum.exRight
        End If
    End With
End Sub

The following C# sample changes the item's alignment when a new items is added to the first group:

private void axExplorerBar1_AddItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AddItemEvent e)
{
    if (e.item.Group.Index == 0)
        e.item.Alignment = EXPLORERBARLib.AlignmentEnum.exRight;
}

The following VFP sample changes the item's alignment when a new items is added to the first group:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    If (.Group.Index = 0) Then
        .Alignment = 2 && exRight
    EndIf
endwith


event AnchorClick

event AnchorClick (AnchorID as String, Options as String)
Occurs when an anchor element is clicked.

Type | Description
AnchorID as String | A string expression that indicates the identifier of the anchor
Options as String | A string expression that specifies options of the anchor element.
The control fires the AnchorClick event to notify that the user clicks an anchor element. An anchor is a piece of text or some other object (for example an image) which marks the beginning and/or the end of a hypertext link. The <a> element is used to mark that piece of text (or inline image), and to give its hypertextual relationship to other documents. The AnchorClick event is fired only if prior clicking the control it shows the hand cursor. For instance, if the cell is disabled, the hand cursor is not shown when hovers the anchor element, and so the AnchorClick event is not fired. Use the FormatAnchor property to specify the visual effect for anchor elements. For instance, if the user clicks the anchor <a1>anchor</a>, the control fires the AnchorClick event, where the AnchorID parameter is 1, and the Options parameter is empty. Also, if the user clicks the anchor <a 1;yourextradata>anchor</a>, the AnchorID parameter of the AnchorClick event is 1, and the Options parameter is "yourextradata". Use the AnchorFromPoint property to retrieve the identifier of the anchor element from the cursor.

Syntax for AnchorClick event, /NET version, on:

private void AnchorClick(object sender,string AnchorID,string Options)
{
}

Private Sub AnchorClick(ByVal sender As System.Object,ByVal AnchorID As String,ByVal Options As String) Handles AnchorClick
End Sub

Syntax for AnchorClick event, /COM version, on:

private void AnchorClick(object sender, AxEXPLORERBARLib._IExplorerBarEvents_AnchorClickEvent e)
{
}

void OnAnchorClick(LPCTSTR AnchorID,LPCTSTR Options)
{
}

void __fastcall AnchorClick(TObject *Sender,BSTR AnchorID,BSTR Options)
{
}

procedure AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
end;

procedure AnchorClick(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_AnchorClickEvent);
begin
end;

begin event AnchorClick(string AnchorID,string Options)
end event AnchorClick

Private Sub AnchorClick(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_AnchorClickEvent) Handles AnchorClick
End Sub

Private Sub AnchorClick(ByVal AnchorID As String,ByVal Options As String)
End Sub

Private Sub AnchorClick(ByVal AnchorID As String,ByVal Options As String)
End Sub

LPARAMETERS AnchorID,Options

PROCEDURE OnAnchorClick(oExplorerBar,AnchorID,Options)
RETURN

Syntax for AnchorClick event, /COM version (others), on:

<SCRIPT EVENT="AnchorClick(AnchorID,Options)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function AnchorClick(AnchorID,Options)
End Function
</SCRIPT>

Procedure OnComAnchorClick String llAnchorID String llOptions
    Forward Send OnComAnchorClick llAnchorID llOptions
End_Procedure

METHOD OCX_AnchorClick(AnchorID,Options) CLASS MainDialog
RETURN NIL

void onEvent_AnchorClick(str _AnchorID,str _Options)
{
}

function AnchorClick as v (AnchorID as C,Options as C)
end function

function nativeObject_AnchorClick(AnchorID,Options)
return


event BeforeExpandGroup

event BeforeExpandGroup (Group as Group, Cancel as Boolean)
Occurs just before expanding or collapsing a group.

Type | Description
Group as Group | A Group object being expanded or collapsed.
Cancel as Boolean | A boolean expression that indicates whether the expanding/collapsing operation is canceled.

The BeforeExandGroup event notifies your application that a group is expanding or collapsing. Use the BeforeExapndGroup event to cancel the expanding/collapsing operation. The control fires the ExpandGroup event after group is expanded or collapsed. Use the Expanded property to expand programmatically the group. Use the DisplayExpandIcon property to show or hide the expand icon on the group's caption.

Syntax for BeforeExpandGroup event, /NET version, on:

private void BeforeExpandGroup(object sender,exontrol.EXPLORERBARLib.Group Group,ref bool Cancel)
{
}

Private Sub BeforeExpandGroup(ByVal sender As System.Object,ByVal Group As exontrol.EXPLORERBARLib.Group,ByRef Cancel As Boolean) Handles BeforeExpandGroup
End Sub

Syntax for BeforeExpandGroup event, /COM version, on:

private void BeforeExpandGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_BeforeExpandGroupEvent e)
{
}

void OnBeforeExpandGroup(LPDISPATCH Group,BOOL FAR* Cancel)
{
}

void __fastcall BeforeExpandGroup(TObject *Sender,Explorerbarlib_tlb::IGroup *Group,VARIANT_BOOL * Cancel)
{
}

procedure BeforeExpandGroup(ASender: TObject; Group : IGroup;var Cancel : WordBool);
begin
end;

procedure BeforeExpandGroup(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_BeforeExpandGroupEvent);
begin
end;

begin event BeforeExpandGroup(oleobject Group,boolean Cancel)
end event BeforeExpandGroup

Private Sub BeforeExpandGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_BeforeExpandGroupEvent) Handles BeforeExpandGroup
End Sub

Private Sub BeforeExpandGroup(ByVal Group As EXPLORERBARLibCtl.IGroup,Cancel As Boolean)
End Sub

Private Sub BeforeExpandGroup(ByVal Group As Object,Cancel As Boolean)
End Sub

LPARAMETERS Group,Cancel

PROCEDURE OnBeforeExpandGroup(oExplorerBar,Group,Cancel)
RETURN

Syntax for BeforeExpandGroup event, /COM version (others), on:

<SCRIPT EVENT="BeforeExpandGroup(Group,Cancel)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function BeforeExpandGroup(Group,Cancel)
End Function
</SCRIPT>

Procedure OnComBeforeExpandGroup Variant llGroup Boolean llCancel
    Forward Send OnComBeforeExpandGroup llGroup llCancel
End_Procedure

METHOD OCX_BeforeExpandGroup(Group,Cancel) CLASS MainDialog
RETURN NIL

void onEvent_BeforeExpandGroup(COM _Group,COMVariant /*bool*/ _Cancel)
{
}

function BeforeExpandGroup as v (Group as OLE::Exontrol.ExplorerBar.1::IGroup,Cancel as L)
end function

function nativeObject_BeforeExpandGroup(Group,Cancel)
return

The following VB sample disables expanding or collapsing the first group:

Private Sub ExplorerBar1_BeforeExpandGroup(ByVal Group As EXPLORERBARLibCtl.IGroup, Cancel As Boolean)
    With Group
        If .Index = 0 Then
            Cancel = True
        End If
    End With
End Sub

The following C++ sample disables expanding or collapsing the first group:

void OnBeforeExpandGroupExplorerbar1(LPDISPATCH Group, BOOL FAR* Cancel)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    if ( group.GetIndex() == 0 )
        *Cancel = TRUE;
}

The following VB.NET sample disables expanding or collapsing the first group:

Private Sub AxExplorerBar1_BeforeExpandGroup(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_BeforeExpandGroupEvent) Handles AxExplorerBar1.BeforeExpandGroup
    With e.group
        If (.Index = 0) Then
            e.cancel = True
        End If
    End With
End Sub

The following C# sample disables expanding or collapsing the first group:

private void axExplorerBar1_BeforeExpandGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_BeforeExpandGroupEvent e)
{
    if (e.group.Index == 0)
        e.cancel = true;
}

The following VFP sample disables expanding or collapsing the first group:

*** ActiveX Control Event ***
LPARAMETERS group, cancel

With Group
    If .Index = 0 Then
        Cancel = .t.
    EndIf
EndWith


event Click ()
Occurs when the user presses and then releases the left mouse button over the control.

Type Description

The Click event is fired when the user releases the left mouse button over the control. Use a MouseDown or MouseUp event procedure to specify actions that will occur when a mouse button is pressed or released. Unlike the Click and DblClick events, MouseDown and MouseUp events lets you distinguish between the left, right, and middle mouse buttons. You can also write code for mouse-keyboard combinations that use the SHIFT, CTRL, and ALT keyboard modifiers. The control fires the SelectItem event when user clicks an item. The SelectGroup event is fired when the user clicks the group's header. Use the ExpandOnClick property to specify whether the user can expand or collapse the groups by clicking the caption of the group.

Syntax for Click event, /NET version, on:

private void Click(object sender)
{
}

Private Sub Click(ByVal sender As System.Object) Handles Click
End Sub

Syntax for Click event, /COM version, on:

private void ClickEvent(object sender, EventArgs e)
{
}

void OnClick()
{
}

void __fastcall Click(TObject *Sender)
{
}

procedure Click(ASender: TObject; );
begin
end;

procedure ClickEvent(sender: System.Object; e: System.EventArgs);
begin
end;

begin event Click()
end event Click

Private Sub ClickEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClickEvent
End Sub

Private Sub Click()
End Sub

Private Sub Click()
End Sub

LPARAMETERS nop

PROCEDURE OnClick(oExplorerBar)
RETURN

Syntax for Click event, /COM version (others), on:

<SCRIPT EVENT="Click()" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function Click()
End Function
</SCRIPT>

Procedure OnComClick
    Forward Send OnComClick
End_Procedure

METHOD OCX_Click() CLASS MainDialog
RETURN NIL

void onEvent_Click()
{
}

function Click as v ()
end function

function nativeObject_Click()
return


event DblClick

event DblClick (Shift as Integer, X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS)
Occurs when the user dblclk the left mouse button over an object.

Type | Description
Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in container coordinates
Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The y values is always expressed in container coordinates
The DblClick event is fired when the user dbl clicks on the control. Use the DblClick event to notify your application that an item has been double-clicked. Use the ItemFromPoint property to get the item over cursor. Use the GroupFromPoint property to get the group over cursor. Use the Caption property to get the caption of the item. Use the Caption property to get the caption of the group. Use the Group property to get the owner of the item.

Syntax for DblClick event, /NET version, on:

private void DblClick(object sender,short Shift,int X,int Y)
{
}

Private Sub DblClick(ByVal sender As System.Object,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles DblClick
End Sub

Syntax for DblClick event, /COM version, on:

private void DblClick(object sender, AxEXPLORERBARLib._IExplorerBarEvents_DblClickEvent e)
{
}

void OnDblClick(short Shift,long X,long Y)
{
}

void __fastcall DblClick(TObject *Sender,short Shift,int X,int Y)
{
}

procedure DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
end;

procedure DblClick(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_DblClickEvent);
begin
end;

begin event DblClick(integer Shift,long X,long Y)
end event DblClick

Private Sub DblClick(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_DblClickEvent) Handles DblClick
End Sub

Private Sub DblClick(Shift As Integer,X As Single,Y As Single)
End Sub

Private Sub DblClick(ByVal Shift As Integer,ByVal X As Long,ByVal Y As Long)
End Sub

LPARAMETERS Shift,X,Y

PROCEDURE OnDblClick(oExplorerBar,Shift,X,Y)
RETURN

Syntax for DblClick event, /COM version (others), on:

<SCRIPT EVENT="DblClick(Shift,X,Y)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function DblClick(Shift,X,Y)
End Function
</SCRIPT>

Procedure OnComDblClick Short llShift OLE_XPOS_PIXELS llX OLE_YPOS_PIXELS llY
    Forward Send OnComDblClick llShift llX llY
End_Procedure

METHOD OCX_DblClick(Shift,X,Y) CLASS MainDialog
RETURN NIL

void onEvent_DblClick(int _Shift,int _X,int _Y)
{
}

function DblClick as v (Shift as N,X as OLE::Exontrol.ExplorerBar.1::OLE_XPOS_PIXELS,Y as OLE::Exontrol.ExplorerBar.1::OLE_YPOS_PIXELS)
end function

function nativeObject_DblClick(Shift,X,Y)
return

The following VB sample displays the caption of the item being double clicked:

Private Sub ExplorerBar1_DblClick(Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim i As EXPLORERBARLibCtl.Item
        Set i = .ItemFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If (Not i Is Nothing) Then
            Debug.Print i.Caption
        End If
    End With
End Sub

The following C++ sample displays the caption of the item being double clicked:

void OnDblClickExplorerbar1(short Shift, long X, long Y)
{
    CItem item = m_explorerbar.GetItemFromPoint( X, Y );
    if ( item.m_lpDispatch != NULL )
        OutputDebugString( item.GetCaption() );
}

The following VB.NET sample displays the caption of the item being double clicked:

Private Sub AxExplorerBar1_DblClick(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_DblClickEvent) Handles AxExplorerBar1.DblClick
    With AxExplorerBar1
        Dim i As EXPLORERBARLib.Item = .get_ItemFromPoint(e.x, e.y)
        If (Not i Is Nothing) Then
            Debug.WriteLine(i.Caption)
        End If
    End With
End Sub

The following C# sample displays the caption of the item being double clicked:

private void axExplorerBar1_DblClick(object sender, AxEXPLORERBARLib._IExplorerBarEvents_DblClickEvent e)
{
    EXPLORERBARLib.Item item = axExplorerBar1.get_ItemFromPoint(e.x, e.y);
    if (item != null)
    {
        System.Diagnostics.Debug.WriteLine(item.Caption);
    }
}

The following VFP sample displays the caption of the item being double clicked:

*** ActiveX Control Event ***
LPARAMETERS shift, x, y

With thisform.ExplorerBar1
    local i
    i = .ItemFromPoint(x, y)
    If ( !isnull(i) ) Then
        with i
            wait window nowait .Caption
        endwith
    EndIf
EndWith


event ExpandGroup

event ExpandGroup (Group as Group)
Occurs when a group is expanded or collapsed.

Type | Description
Group as Group | A Group object being expanded or collapsed.

Use the ExpandGroup event to notify your application that a group is expanded or collapsed. The BeforeExpandGroup event is fired just before expanding or collapsing a group. Use the DelayScroll property to specifies the delay used for animation during expanding or collapsing. Use the Expanded property to expand or collapse programmatically a group. Use the ExpandOnClick property to specify whether the user can expand or collapse the groups by clicking the caption of the group.

Syntax for ExpandGroup event, /NET version, on:

private void ExpandGroup(object sender,exontrol.EXPLORERBARLib.Group Group)
{
}

Private Sub ExpandGroup(ByVal sender As System.Object,ByVal Group As exontrol.EXPLORERBARLib.Group) Handles ExpandGroup
End Sub

Syntax for ExpandGroup event, /COM version, on:

private void ExpandGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_ExpandGroupEvent e)
{
}

void OnExpandGroup(LPDISPATCH Group)
{
}

void __fastcall ExpandGroup(TObject *Sender,Explorerbarlib_tlb::IGroup *Group)
{
}

procedure ExpandGroup(ASender: TObject; Group : IGroup);
begin
end;

procedure ExpandGroup(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_ExpandGroupEvent);
begin
end;

begin event ExpandGroup(oleobject Group)
end event ExpandGroup

Private Sub ExpandGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_ExpandGroupEvent) Handles ExpandGroup
End Sub

Private Sub ExpandGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
End Sub

Private Sub ExpandGroup(ByVal Group As Object)
End Sub

LPARAMETERS Group

PROCEDURE OnExpandGroup(oExplorerBar,Group)
RETURN

Syntax for ExpandGroup event, /COM version (others), on:

<SCRIPT EVENT="ExpandGroup(Group)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function ExpandGroup(Group)
End Function
</SCRIPT>

Procedure OnComExpandGroup Variant llGroup
    Forward Send OnComExpandGroup llGroup
End_Procedure

METHOD OCX_ExpandGroup(Group) CLASS MainDialog
RETURN NIL

void onEvent_ExpandGroup(COM _Group)
{
}

function ExpandGroup as v (Group as OLE::Exontrol.ExplorerBar.1::IGroup)
end function

function nativeObject_ExpandGroup(Group)
return

The following VB sample displays the caption of the group being expanded or collapsed:

Private Sub ExplorerBar1_ExpandGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    With Group
        Debug.Print .Caption & " " & .Expanded
    End With
End Sub

The following C++ sample displays the caption of the group being expanded or collapsed:

void OnExpandGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    CString strOutput;
    strOutput.Format("%s, %i", (LPCTSTR)group.GetCaption(), group.GetExpanded() );
    OutputDebugString( strOutput );
}

The following VB.NET sample displays the caption of the group being expanded or collapsed:

private void axExplorerBar1_DblClick(object sender, AxEXPLORERBARLib._IExplorerBarEvents_DblClickEvent e)
{
    EXPLORERBARLib.Item item = axExplorerBar1.get_ItemFromPoint(e.x, e.y);
    if (item != null)
    {
        System.Diagnostics.Debug.WriteLine(item.Caption);
    }
}

The following C# sample displays the caption of the group being expanded or collapsed:

private void axExplorerBar1_ExpandGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_ExpandGroupEvent e)
{
    string strOutput = e.group.Caption;
    strOutput += " " + e.group.Expanded.ToString();
    System.Diagnostics.Debug.WriteLine(strOutput);
}

The following VFP sample displays the caption of the group being expanded or collapsed:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    wait window nowait .Caption
endwith


event HighLightItem

event HighLightItem (OldItem as Item, NewItem as Item)
Occurs when an item is highlighted.

Type | Description
OldItem as Item | An Item object being un-highlighted.
NewItem as Item | An Item object being highlighted.

Use the HighLightItem event to notify your application that an item is highlighted. The HighLightItem event occurs when cursor hovers the item. The HighlightItemType property specifies the way how the control marks the highlighted item. Use the HyperLinkColor property to specify the item's foreground color when the cursor hovers the mouse. Use the ForeColor property to specify the item's foreground color. Use the AllowHighLight property to avoid highlighting an item when the cursor hovers it.

Syntax for HighLightItem event, /NET version, on:

private void HighLightItem(object sender,exontrol.EXPLORERBARLib.Item OldItem,exontrol.EXPLORERBARLib.Item NewItem)
{
}

Private Sub HighLightItem(ByVal sender As System.Object,ByVal OldItem As exontrol.EXPLORERBARLib.Item,ByVal NewItem As exontrol.EXPLORERBARLib.Item) Handles HighLightItem
End Sub

Syntax for HighLightItem event, /COM version, on:

private void HighLightItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_HighLightItemEvent e)
{
}

void OnHighLightItem(LPDISPATCH OldItem,LPDISPATCH NewItem)
{
}

void __fastcall HighLightItem(TObject *Sender,Explorerbarlib_tlb::IItem *OldItem,Explorerbarlib_tlb::IItem *NewItem)
{
}

procedure HighLightItem(ASender: TObject; OldItem : IItem;NewItem : IItem);
begin
end;

procedure HighLightItem(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_HighLightItemEvent);
begin
end;

begin event HighLightItem(oleobject OldItem,oleobject NewItem)
end event HighLightItem

Private Sub HighLightItem(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_HighLightItemEvent) Handles HighLightItem
End Sub

Private Sub HighLightItem(ByVal OldItem As EXPLORERBARLibCtl.IItem,ByVal NewItem As EXPLORERBARLibCtl.IItem)
End Sub

Private Sub HighLightItem(ByVal OldItem As Object,ByVal NewItem As Object)
End Sub

LPARAMETERS OldItem,NewItem

PROCEDURE OnHighLightItem(oExplorerBar,OldItem,NewItem)
RETURN

Syntax for HighLightItem event, /COM version (others), on:

<SCRIPT EVENT="HighLightItem(OldItem,NewItem)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function HighLightItem(OldItem,NewItem)
End Function
</SCRIPT>

Procedure OnComHighLightItem Variant llOldItem Variant llNewItem
    Forward Send OnComHighLightItem llOldItem llNewItem
End_Procedure

METHOD OCX_HighLightItem(OldItem,NewItem) CLASS MainDialog
RETURN NIL

void onEvent_HighLightItem(COM _OldItem,COM _NewItem)
{
}

function HighLightItem as v (OldItem as OLE::Exontrol.ExplorerBar.1::IItem,NewItem as OLE::Exontrol.ExplorerBar.1::IItem)
end function

function nativeObject_HighLightItem(OldItem,NewItem)
return

The following VB sample bolds the highlighted item:

Private Sub ExplorerBar1_HighLightItem(ByVal OldItem As EXPLORERBARLibCtl.IItem, ByVal NewItem As EXPLORERBARLibCtl.IItem)
    If Not OldItem Is Nothing Then
        OldItem.Bold = False
    End If
    If Not NewItem Is Nothing Then
        NewItem.Bold = True
    End If
End Sub

The following C++ sample bolds the highlighted item:

void OnHighLightItemExplorerbar1(LPDISPATCH OldItem, LPDISPATCH NewItem)
{
    CItem oldItem( OldItem ); oldItem.m_bAutoRelease = FALSE;
    CItem newItem( NewItem ); newItem.m_bAutoRelease = FALSE;
    if ( oldItem.m_lpDispatch != NULL )
        oldItem.SetBold( FALSE );
    if ( newItem.m_lpDispatch != NULL )
        newItem.SetBold( TRUE );
}

The following VB.NET sample bolds the highlighted item:

Private Sub AxExplorerBar1_HighLightItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_HighLightItemEvent) Handles AxExplorerBar1.HighLightItem
    If Not e.oldItem Is Nothing Then
        e.oldItem.Bold = False
    End If
    If Not e.newItem Is Nothing Then
        e.newItem.Bold = True
    End If
End Sub

The following C# sample bolds the highlighted item:

private void axExplorerBar1_HighLightItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_HighLightItemEvent e)
{
    if (e.oldItem != null)
        e.oldItem.Bold = false;
    if (e.newItem != null)
        e.newItem.Bold = true;
}

The following VFP sample bolds the highlighted item:

*** ActiveX Control Event ***
LPARAMETERS olditem, newitem

If !isnull(OldItem)
    OldItem.Bold = .f.
EndIf
If !isnull(NewItem)
    NewItem.Bold = .t.
EndIf


event KeyDown

event KeyDown (KeyCode as Integer, Shift as Integer)
Occurs when the user presses a key while an object has the focus.

Type | Description
KeyCode as Integer | An integer that represent the key code
Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys at the time of the event. The shift argument is a bit field with the least-significant bits corresponding to the SHIFT key (bit 0), the CTRL key (bit 1), and the ALT key (bit 2). These bits correspond to the values 1, 2, and 4, respectively. Some, all, or none of the bits can be set, indicating that some, all, or none of the keys are pressed. For example, if both CTRL and ALT are pressed, the value of shift is 6.

Use KeyDown and KeyUp event procedures if you need to respond to both the pressing and releasing of a key. You test for a condition by first assigning each result to a temporary integer variable and then comparing shift to a bit mask. The control fires the SelectItem event when the user presses the ENTER key, if the ShowFocusRect property is True. If the group's caption has the focus, the control fires the BeforeExpandGroup and ExpandGroup event when user presses the ENTER key. Use the And operator with the shift argument to test whether the condition is greater than 0, indicating that the modifier was pressed, as in this example:

ShiftDown = (Shift And 1) > 0
CtrlDown = (Shift And 2) > 0
AltDown = (Shift And 4) > 0
In a procedure, you can test for any combination of conditions, as in this example:
If AltDown And CtrlDown Then

Syntax for KeyDown event, /NET version, on:

private void KeyDown(object sender,ref short KeyCode,short Shift)
{
}

Private Sub KeyDown(ByVal sender As System.Object,ByRef KeyCode As Short,ByVal Shift As Short) Handles KeyDown
End Sub

Syntax for KeyDown event, /COM version, on:

private void KeyDownEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_KeyDownEvent e)
{
}

void OnKeyDown(short FAR* KeyCode,short Shift)
{
}

void __fastcall KeyDown(TObject *Sender,short * KeyCode,short Shift)
{
}

procedure KeyDown(ASender: TObject; var KeyCode : Smallint;Shift : Smallint);
begin
end;

procedure KeyDownEvent(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_KeyDownEvent);
begin
end;

begin event KeyDown(integer KeyCode,integer Shift)
end event KeyDown

Private Sub KeyDownEvent(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_KeyDownEvent) Handles KeyDownEvent
End Sub

Private Sub KeyDown(KeyCode As Integer,Shift As Integer)
End Sub

Private Sub KeyDown(KeyCode As Integer,ByVal Shift As Integer)
End Sub

LPARAMETERS KeyCode,Shift

PROCEDURE OnKeyDown(oExplorerBar,KeyCode,Shift)
RETURN

Syntax for KeyDown event, /COM version (others), on:

<SCRIPT EVENT="KeyDown(KeyCode,Shift)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function KeyDown(KeyCode,Shift)
End Function
</SCRIPT>

Procedure OnComKeyDown Short llKeyCode Short llShift
    Forward Send OnComKeyDown llKeyCode llShift
End_Procedure

METHOD OCX_KeyDown(KeyCode,Shift) CLASS MainDialog
RETURN NIL

void onEvent_KeyDown(COMVariant /*short*/ _KeyCode,int _Shift)
{
}

function KeyDown as v (KeyCode as N,Shift as N)
end function

function nativeObject_KeyDown(KeyCode,Shift)
return

The following VB sample shows how you can navigate the items using the up or down keys:

Dim i As EXPLORERBARLibCtl.Item

Private Sub ExplorerBar1_KeyDown(KeyCode As Integer, Shift As Integer)
    If Not i Is Nothing Then
        Dim g As EXPLORERBARLibCtl.Group
        Set g = i.Group
        Dim iPos As Long
        iPos = i.Position
        If (KeyCode = vbKeyDown) Then
            iPos = (iPos + 1) Mod g.Count
        End If
        If (KeyCode = vbKeyUp) Then
            If (iPos > 0) Then
                iPos = iPos - 1
            Else
                iPos = g.Count - 1
            End If
        End If
        If iPos <> i.Position Then
            ExplorerBar1_SelectItem g.ItemByPos(iPos)
        End If
    End If
End Sub

Private Sub ExplorerBar1_SelectItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    If Not (i Is Nothing) Then
        i.BackColor = ExplorerBar1.BackColor
    End If
    Set i = Item
    Item.BackColor = vbRed
End Sub


event KeyPress

event KeyPress (KeyAscii as Integer)
Occurs when the user presses and releases an ANSI key.

Type | Description
KeyAscii as Integer | An integer that returns a standard numeric ANSI keycode

The KeyPress event lets you immediately test keystrokes for validity or for formatting characters as they are typed. Changing the value of the keyascii argument changes the character displayed. Use KeyDown and KeyUp event procedures to handle any keystroke not recognized by KeyPress, such as function keys, editing keys, navigation keys, and any combinations of these with keyboard modifiers. Unlike the KeyDown and KeyUp events, KeyPress does not indicate the physical state of the keyboard; instead, it passes a character. KeyPress interprets the uppercase and lowercase of each character as separate key codes and, therefore, as two separate characters. The control fires the SelectItem event when the user presses the ENTER key, if the ShowFocusRect property is True. If the group's caption has the focus, the control fires the BeforeExpandGroup and ExpandGroup event when user presses the ENTER key.

Syntax for KeyPress event, /NET version, on:

private void KeyPress(object sender,ref short KeyAscii)
{
}

Private Sub KeyPress(ByVal sender As System.Object,ByRef KeyAscii As Short) Handles KeyPress
End Sub

Syntax for KeyPress event, /COM version, on:

private void KeyPressEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_KeyPressEvent e)
{
}

void OnKeyPress(short FAR* KeyAscii)
{
}

void __fastcall KeyPress(TObject *Sender,short * KeyAscii)
{
}

procedure KeyPress(ASender: TObject; var KeyAscii : Smallint);
begin
end;

procedure KeyPressEvent(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_KeyPressEvent);
begin
end;

begin event KeyPress(integer KeyAscii)
end event KeyPress

Private Sub KeyPressEvent(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_KeyPressEvent) Handles KeyPressEvent
End Sub

Private Sub KeyPress(KeyAscii As Integer)
End Sub

Private Sub KeyPress(KeyAscii As Integer)
End Sub

LPARAMETERS KeyAscii

PROCEDURE OnKeyPress(oExplorerBar,KeyAscii)
RETURN

Syntax for KeyPress event, /COM version (others), on:

<SCRIPT EVENT="KeyPress(KeyAscii)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function KeyPress(KeyAscii)
End Function
</SCRIPT>

Procedure OnComKeyPress Short llKeyAscii
    Forward Send OnComKeyPress llKeyAscii
End_Procedure

METHOD OCX_KeyPress(KeyAscii) CLASS MainDialog
RETURN NIL

void onEvent_KeyPress(COMVariant /*short*/ _KeyAscii)
{
}

function KeyPress as v (KeyAscii as N)
end function

function nativeObject_KeyPress(KeyAscii)
return


event KeyUp

event KeyUp (KeyCode as Integer, Shift as Integer)
Occurs when the user releases a key while an object has the focus.

Type | Description
KeyCode as Integer | An integer that represent the key code.
Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys at the time of the event. The shift argument is a bit field with the least-significant bits corresponding to the SHIFT key (bit 0), the CTRL key (bit 1), and the ALT key (bit 2). These bits correspond to the values 1, 2, and 4, respectively. Some, all, or none of the bits can be set, indicating that some, all, or none of the keys are pressed. For example, if both CTRL and ALT are pressed, the value of shift is 6

Use the KeyUp event procedure to respond to the releasing of a key.

Syntax for KeyUp event, /NET version, on:

private void KeyUp(object sender,ref short KeyCode,short Shift)
{
}

Private Sub KeyUp(ByVal sender As System.Object,ByRef KeyCode As Short,ByVal Shift As Short) Handles KeyUp
End Sub

Syntax for KeyUp event, /COM version, on:

private void KeyUpEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_KeyUpEvent e)
{
}

void OnKeyUp(short FAR* KeyCode,short Shift)
{
}

void __fastcall KeyUp(TObject *Sender,short * KeyCode,short Shift)
{
}

procedure KeyUp(ASender: TObject; var KeyCode : Smallint;Shift : Smallint);
begin
end;

procedure KeyUpEvent(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_KeyUpEvent);
begin
end;

begin event KeyUp(integer KeyCode,integer Shift)
end event KeyUp

Private Sub KeyUpEvent(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_KeyUpEvent) Handles KeyUpEvent
End Sub

Private Sub KeyUp(KeyCode As Integer,Shift As Integer)
End Sub

Private Sub KeyUp(KeyCode As Integer,ByVal Shift As Integer)
End Sub

LPARAMETERS KeyCode,Shift

PROCEDURE OnKeyUp(oExplorerBar,KeyCode,Shift)
RETURN

Syntax for KeyUp event, /COM version (others), on:

<SCRIPT EVENT="KeyUp(KeyCode,Shift)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function KeyUp(KeyCode,Shift)
End Function
</SCRIPT>

Procedure OnComKeyUp Short llKeyCode Short llShift
    Forward Send OnComKeyUp llKeyCode llShift
End_Procedure

METHOD OCX_KeyUp(KeyCode,Shift) CLASS MainDialog
RETURN NIL

void onEvent_KeyUp(COMVariant /*short*/ _KeyCode,int _Shift)
{
}

function KeyUp as v (KeyCode as N,Shift as N)
end function

function nativeObject_KeyUp(KeyCode,Shift)
return


event LayoutChanged ()
Occurs when control's layout is changed.

Type Description

Use the LayoutChanged event to notify your application that the control's content is changed. The LayoutChanged event is called if the control is resized, if a group is expanded or collapsed, if the control is scrolled, and so on. The Left, Top, Width and Height properties determine the location of the group's list in client coordinates.

Syntax for LayoutChanged event, /NET version, on:

private void LayoutChanged(object sender)
{
}

Private Sub LayoutChanged(ByVal sender As System.Object) Handles LayoutChanged
End Sub

Syntax for LayoutChanged event, /COM version, on:

private void LayoutChanged(object sender, EventArgs e)
{
}

void OnLayoutChanged()
{
}

void __fastcall LayoutChanged(TObject *Sender)
{
}

procedure LayoutChanged(ASender: TObject; );
begin
end;

procedure LayoutChanged(sender: System.Object; e: System.EventArgs);
begin
end;

begin event LayoutChanged()
end event LayoutChanged

Private Sub LayoutChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LayoutChanged
End Sub

Private Sub LayoutChanged()
End Sub

Private Sub LayoutChanged()
End Sub

LPARAMETERS nop

PROCEDURE OnLayoutChanged(oExplorerBar)
RETURN

Syntax for LayoutChanged event, /COM version (others), on:

<SCRIPT EVENT="LayoutChanged()" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function LayoutChanged()
End Function
</SCRIPT>

Procedure OnComLayoutChanged
    Forward Send OnComLayoutChanged
End_Procedure

METHOD OCX_LayoutChanged() CLASS MainDialog
RETURN NIL

void onEvent_LayoutChanged()
{
}

function LayoutChanged as v ()
end function

function nativeObject_LayoutChanged()
return

C++ The following tutorial shows the steps that are required to insert an ActiveX control inside the control. Shortly, the idea is to insert child windows to the control, and to move the windows when the control fires the LayoutChanged event. The following sample shows how to add a SysTreeView32 window to the control. The following sample contains all code you need to handle ActiveX inside the control.

  • Insert an ExplorerBar control ( IDC_EXPLORERBAR1 ), to the dialog (form)
  • Add a variable member m_explorerBar, using the Class wizard
  • Add a Tree control ( IDC_TREE1 ) to the dialog ( form )
  • Add a variable member m_tree, using the Class wizard
  • Locate the OnInitDialog member of the dialog
  • Call the initialization functions to the OnInitDialog function like follows:
    BOOL OnInitDialog()
{
    ....
    initTree();
    initExplorerBar();
    ...
    return TRUE;
}
  • Implement the initTree function. For instance, the following sample adds few items to the tree control
    void initTree()
{
    HTREEITEM h = m_tree.InsertItem( _T("Root") );
    HTREEITEM hChild1 =m_tree.InsertItem( _T("Child1"), h );
    m_tree.InsertItem( _T("SubChild1"), hChild1 );
    m_tree.InsertItem( _T("SubChild2"), hChild1 );
    HTREEITEM hChild2 =m_tree.InsertItem( _T("Child2"), h );
    m_tree.Expand( h, TVE_EXPAND );
    m_tree.Expand( hChild1, TVE_EXPAND );
}
  • Implement the initExplorerBar function like follows:
    void initExplorerBar()
{
    COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR;
    m_explorerBar.BeginUpdate();
        // Adds a group that hosts a tree control
        CGroups groups = m_explorerBar.GetGroups();
        CGroup group = groups.Add( _T("Tree inside") );
        group.SetItemHeight( 84 );
        group.AddItem( _T(""), vtMissing );
        group.SetExpanded( TRUE );
        initHost( m_tree.m_hWnd, m_explorerBar, group.GetIndex() );
    m_explorerBar.EndUpdate();
}

    The initExplorerBar function adds a group, and a single item to the group. The ItemHeight property of the Group object is called, to specifies the height of the item, but in our case it will specify the height of the hosted window. The initHost function changes the parent window of the host window, and holds the window's handle to the group's user data.

  • Implement the initHost function like follows:
    void initHost( HWND hWnd, CExplorerBar&amp; explorerBar, long nGroupIndex )
{
    CGroup group = explorerBar.GetGroups().GetItem( COleVariant( nGroupIndex ) );
    if ( hWnd )
    {
        ::SetClassLong( hWnd, GCL_STYLE, CS_HREDRAW | CS_VREDRAW );
        ::SetWindowPos( explorerBar.m_hWnd, hWnd , 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_FRAMECHANGED );
        ::SetParent( hWnd, explorerBar.m_hWnd );

        // Stores the handle to the inside window to the group's user data.
        group.SetUserData( COleVariant( (long)hWnd ) );
        moveHost( hWnd, explorerBar, nGroupIndex );
    }
}

The initHost function changes the Z order of the window, change the parent window, holds the window's handle to the group's user data, and moves the window to the new position.

  • Implement the moveHost function like follows:
    void moveHost( HWND hWnd, CExplorerBar&amp; explorerBar, long nGroupIndex )
{
    if ( ::IsWindow( hWnd ) )
    {
        CGroup group = explorerBar.GetGroups().GetItem( COleVariant( nGroupIndex ) );
        CRect rtGroup;
        rtGroup.left = group.GetLeft();
        rtGroup.right = rtGroup.left + group.GetWidth();
        rtGroup.top = group.GetTop();
        rtGroup.bottom = rtGroup.top + group.GetHeight();
/*
        ::SetWindowPos( hWnd, NULL, rtGroup.left, rtGroup.top, rtGroup.Width(), rtGroup.Height(), SWP_FRAMECHANGED | SWP_NOZORDER | SWP_HIDEWINDOW | SWP_NOREDRAW);
        ::SetWindowPos( hWnd, NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOZORDER | SWP_NOSIZE | SWP_NOMOVE | ( group.GetExpanded() ? SWP_SHOWWINDOW : SWP_HIDEWINDOW ) );
*/
        ::SetWindowPos( hWnd, NULL, rtGroup.left, rtGroup.top, rtGroup.Width(), rtGroup.Height(), SWP_NOZORDER | ( group.GetExpanded() ? SWP_SHOWWINDOW : SWP_HIDEWINDOW ) );
    }
}

The moveHost function moves the window to the coordinates specified by Left, Top, Width and Height properties of the Group object.

  • Handle the LayoutChanged event of the ExplorerBar control like follows:
    void OnLayoutChangedExplorerbar1()
{
    if ( IsWindow( m_explorerBar.m_hWnd ) )
    {
        CGroups groups = m_explorerBar.GetGroups();
        for ( long i = 0; i < groups.GetCount(); i++ )
            moveHost( m_explorerBar, i );
    }
}

VB The following tutorial shows the steps that are required to insert an ActiveX control inside the control. Shortly, the idea is to insert child windows to the control, and to move the windows when the control fires the LayoutChanged event. The following sample shows how to add a ListBox control to the ExplorerBar control. The following sample contains all code you need to handle ActiveX inside the control.

  • Insert an ExplorerBar control ( ExplorerBar1 ) to the form
  • Add a ListBox control ( List1 ) to the form
  • Call initialization functions in the Form_Load event like follows:
    Private Sub Form_Load()
    ...
    initList
    initExplorerBar
    ...
End Sub
  • Implement the initList function. For instance, the following sample adds few items to the ListBox control
    Private Sub initList()
    With List1
        .AddItem "Item 1"
        .AddItem "Item 2"
        .AddItem "Item 3"
        .AddItem "Item 4"
    End With
End Sub
  • Implement the initExplorerBar function like follows:
    Private Sub initExplorerBar()
    With ExplorerBar1
        .BeginUpdate
            With .Groups.Add("List")
                .ItemHeight = 84
                .AddItem ""
                initHost List1, ExplorerBar1, .Index
                .Expanded = True
            End With
        .EndUpdate
    End With
End Sub

    The initExplorerBar function adds a group, and a single item to the group. The ItemHeight property of the Group object is called, to specify the height of the item, but in our case it will specify the height of the hosted window. The initHost function changes the parent window of the host window, and holds the control's reference to the group's user data.

  • Implement the initHost function like follows:
    Private Sub initHost(ByVal c As Object, ByVal e As EXPLORERBARLibCtl.ExplorerBar, ByVal i As Long)
    Dim g As EXPLORERBARLibCtl.Group
    Set g = e.Groups(i)
    If Not c Is Nothing Then
        SetParent c.hwnd, e.hwnd
        g.UserData = c
        moveHost e, i
    End If
End Sub

The initHost function change the parent window, holds the control to the group's user data, and moves the control to the new position.

  • Implement the moveHost function like follows:
    Private Sub moveHost(ByVal e As EXPLORERBARLibCtl.ExplorerBar, ByVal i As Long)
On Error Resume Next
    Dim g As EXPLORERBARLibCtl.Group
    Set g = e.Groups(i)
    Dim c As Object
    Set c = g.UserData
    If Not c Is Nothing Then
        If Not (g.Expanded) Then
            c.Visible = False
        End If
        c.Left = g.Left * Screen.TwipsPerPixelX
        c.Top = g.Top * Screen.TwipsPerPixelY
        c.Width = g.Width * Screen.TwipsPerPixelX
        c.Height = g.Height * Screen.TwipsPerPixelY
        If (g.Expanded) Then
            c.Visible = True
        End If
    End If
End Sub

    The moveHost function moves the control to the coordinates specified by Left, Top, Width and Height properties of the Group object.

  • Handle the LayoutChanged event of the ExplorerBar control like follows:
Private Sub ExplorerBar1_LayoutChanged()
    Dim g As EXPLORERBARLibCtl.Group
    For Each g In ExplorerBar1.Groups
        moveHost ExplorerBar1, g.Index
    Next
End Sub


event MouseDown

event MouseDown (Button as Integer, Shift as Integer, X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS)
Occurs when the user presses a mouse button.

Type | Description
Button as Integer | An integer that identifies the button that was pressed to cause the event.
Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys when the button specified in the button argument is pressed or released.
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The X value is always expressed in container coordinates.
Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The Y value is always expressed in container coordinates.

Use a MouseDown or MouseUp event procedure to specify actions that will occur when a mouse button is pressed or released. Unlike the Click and DblClick events, MouseDown and MouseUp events lets you distinguish between the left, right, and middle mouse buttons. You can also write code for mouse-keyboard combinations that use the SHIFT, CTRL, and ALT keyboard modifiers. Use the ItemFromPoint property to get the item over cursor. Use the GroupFromPoint property to get the group over cursor. The control fires the SelectItem event when the user clicks an item. The BeforeExpandGroup and ExpandGroup events occur when the user clicks the caption of the group. Use the SelectGroup event to notify your application that a group is selected.

Syntax for MouseDown event, /NET version, on:

private void MouseDownEvent(object sender,short Button,short Shift,int X,int Y)
{
}

Private Sub MouseDownEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles MouseDownEvent
End Sub

Syntax for MouseDown event, /COM version, on:

private void MouseDownEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseDownEvent e)
{
}

void OnMouseDown(short Button,short Shift,long X,long Y)
{
}

void __fastcall MouseDown(TObject *Sender,short Button,short Shift,int X,int Y)
{
}

procedure MouseDown(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
end;

procedure MouseDownEvent(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_MouseDownEvent);
begin
end;

begin event MouseDown(integer Button,integer Shift,long X,long Y)
end event MouseDown

Private Sub MouseDownEvent(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseDownEvent) Handles MouseDownEvent
End Sub

Private Sub MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
End Sub

Private Sub MouseDown(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Long,ByVal Y As Long)
End Sub

LPARAMETERS Button,Shift,X,Y

PROCEDURE OnMouseDown(oExplorerBar,Button,Shift,X,Y)
RETURN

Syntax for MouseDown event, /COM version (others), on:

<SCRIPT EVENT="MouseDown(Button,Shift,X,Y)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function MouseDown(Button,Shift,X,Y)
End Function
</SCRIPT>

Procedure OnComMouseDown Short llButton Short llShift OLE_XPOS_PIXELS llX OLE_YPOS_PIXELS llY
    Forward Send OnComMouseDown llButton llShift llX llY
End_Procedure

METHOD OCX_MouseDown(Button,Shift,X,Y) CLASS MainDialog
RETURN NIL

void onEvent_MouseDown(int _Button,int _Shift,int _X,int _Y)
{
}

function MouseDown as v (Button as N,Shift as N,X as OLE::Exontrol.ExplorerBar.1::OLE_XPOS_PIXELS,Y as OLE::Exontrol.ExplorerBar.1::OLE_YPOS_PIXELS)
end function

function nativeObject_MouseDown(Button,Shift,X,Y)
return

The following VB sample displays the caption of the group being clicked:

Private Sub ExplorerBar1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim g As Group
        Set g = .GroupFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not g Is Nothing Then
            MsgBox g.Caption
        End If
    End With
End Sub

The following VB sample displays the caption of the item being clicked:

Private Sub ExplorerBar1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim i As Item
        Set i = .ItemFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not i Is Nothing Then
            MsgBox i.Caption
        End If
    End With
End Sub

The following C++ sample displays the caption of the group being clicked:

void OnMouseDownExplorerbar1(short Button, short Shift, long X, long Y)
{
    CGroup group = m_explorerbar.GetGroupFromPoint( X, Y );
    if ( group.m_lpDispatch != NULL )
        MessageBox( group.GetCaption() );
}

The following C++ sample displays the caption of the item being clicked:

void OnMouseDownExplorerbar1(short Button, short Shift, long X, long Y)
{
    CItem item = m_explorerbar.GetItemFromPoint( X, Y );
    if ( item.m_lpDispatch != NULL )
        MessageBox( item.GetCaption() );
}

The following VB.NET sample displays the caption of the group being clicked:

Private Sub AxExplorerBar1_MouseDownEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseDownEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim g As EXPLORERBARLib.Group = .get_GroupFromPoint(e.x, e.y)
        If Not g Is Nothing Then
            MsgBox(g.Caption)
        End If
    End With
End Sub

The following VB.NET sample displays the caption of the item being clicked:

Private Sub AxExplorerBar1_MouseDownEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseDownEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim i As EXPLORERBARLib.Item = .get_ItemFromPoint(e.x, e.y)
        If Not i Is Nothing Then
            MsgBox(i.Caption)
        End If
    End With
End Sub

The following C# sample displays the caption of the group being clicked:

private void axExplorerBar1_MouseDownEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseDownEvent e)
{
    EXPLORERBARLib.Group g = axExplorerBar1.get_GroupFromPoint(e.x, e.y);
    if (g != null)
        MessageBox.Show(g.Caption);
}

The following C# sample displays the caption of the item being clicked:

private void axExplorerBar1_MouseDownEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseDownEvent e)
{
    EXPLORERBARLib.Item i = axExplorerBar1.get_ItemFromPoint(e.x, e.y);
    if (i != null)
        MessageBox.Show(i.Caption);
}

The following VFP sample displays the caption of the group being clicked:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local g
    g = .GroupFromPoint(x , y)
    If !isnull(g)
        with g
            wait window nowait .Caption
       endwith
    EndIf
EndWith

The following VFP sample displays the caption of the item being clicked:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local i
    i = .ItemFromPoint(x , y)
    If !isnull(i)
        with i
            wait window nowait .Caption
       endwith
    EndIf
EndWith


event MouseMove

event MouseMove (Button as Integer, Shift as Integer, X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS)
Occurs when the user moves the mouse.

Type | Description
Button as Integer | An integer that corresponds to the state of the mouse buttons in which a bit is set if the button is down.
Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys.
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in container coordinates
Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The y values is always expressed in container coordinates

The MouseMove event is generated continually as the mouse pointer moves across objects. Unless another object has captured the mouse, an object recognizes a MouseMove event whenever the mouse position is within its borders. Use the ItemFromPoint property to get the item over cursor. Use the GroupFromPoint property to get the group over cursor.

Syntax for MouseMove event, /NET version, on:

private void MouseMoveEvent(object sender,short Button,short Shift,int X,int Y)
{
}

Private Sub MouseMoveEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles MouseMoveEvent
End Sub

Syntax for MouseMove event, /COM version, on:

private void MouseMoveEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent e)
{
}

void OnMouseMove(short Button,short Shift,long X,long Y)
{
}

void __fastcall MouseMove(TObject *Sender,short Button,short Shift,int X,int Y)
{
}

procedure MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
end;

procedure MouseMoveEvent(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent);
begin
end;

begin event MouseMove(integer Button,integer Shift,long X,long Y)
end event MouseMove

Private Sub MouseMoveEvent(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent) Handles MouseMoveEvent
End Sub

Private Sub MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)
End Sub

Private Sub MouseMove(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Long,ByVal Y As Long)
End Sub

LPARAMETERS Button,Shift,X,Y

PROCEDURE OnMouseMove(oExplorerBar,Button,Shift,X,Y)
RETURN

Syntax for MouseMove event, /COM version (others), on:

<SCRIPT EVENT="MouseMove(Button,Shift,X,Y)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function MouseMove(Button,Shift,X,Y)
End Function
</SCRIPT>

Procedure OnComMouseMove Short llButton Short llShift OLE_XPOS_PIXELS llX OLE_YPOS_PIXELS llY
    Forward Send OnComMouseMove llButton llShift llX llY
End_Procedure

METHOD OCX_MouseMove(Button,Shift,X,Y) CLASS MainDialog
RETURN NIL

void onEvent_MouseMove(int _Button,int _Shift,int _X,int _Y)
{
}

function MouseMove as v (Button as N,Shift as N,X as OLE::Exontrol.ExplorerBar.1::OLE_XPOS_PIXELS,Y as OLE::Exontrol.ExplorerBar.1::OLE_YPOS_PIXELS)
end function

function nativeObject_MouseMove(Button,Shift,X,Y)
return

The following VB sample displays the caption of the group from the cursor:

Private Sub ExplorerBar1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim g As Group
        Set g = .GroupFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not g Is Nothing Then
            Debug.Print g.Caption
        End If
    End With
End Sub

The following VB sample displays the caption of the item from the cursor:

Private Sub ExplorerBar1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim i As Item
        Set i = .ItemFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not i Is Nothing Then
            Debug.Print i.Caption
        End If
    End With
End Sub

The following C++ sample displays the caption of the group from the cursor:

void OnMouseMoveExplorerbar1(short Button, short Shift, long X, long Y)
{
    CGroup group = m_explorerbar.GetGroupFromPoint( X, Y );
    if ( group.m_lpDispatch != NULL )
        OutputDebugString( group.GetCaption() );
}

The following C++ sample displays the caption of the item from the cursor:

void OnMouseMoveExplorerbar1(short Button, short Shift, long X, long Y)
{
    CItem item = m_explorerbar.GetItemFromPoint( X, Y );
    if ( item.m_lpDispatch != NULL )
        OutputDebugString( item.GetCaption() );
}

The following VB.NET sample displays the caption of the group from the cursor:

Private Sub AxExplorerBar1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim g As EXPLORERBARLib.Group = .get_GroupFromPoint(e.x, e.y)
        If Not g Is Nothing Then
            Debug.WriteLine(g.Caption)
        End If
    End With
End Sub

The following VB.NET sample displays the caption of the item from the cursor:

Private Sub AxExplorerBar1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim i As EXPLORERBARLib.Item = .get_ItemFromPoint(e.x, e.y)
        If Not i Is Nothing Then
            Debug.WriteLine(i.Caption)
        End If
    End With
End Sub

The following C# sample displays the caption of the group from the cursor:

private void axExplorerBar1_MouseMoveEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent e)
{
    EXPLORERBARLib.Group g = axExplorerBar1.get_GroupFromPoint(e.x, e.y);
    if (g != null)
        System.Diagnostics.Debug.WriteLine(g.Caption);
}

The following C# sample displays the caption of the item from the cursor:

private void axExplorerBar1_MouseMoveEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseMoveEvent e)
{
    EXPLORERBARLib.Item i = axExplorerBar1.get_ItemFromPoint(e.x, e.y);
    if (i != null)
        System.Diagnostics.Debug.WriteLine(i.Caption);
}

The following VFP sample displays the caption of the group from the cursor:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local g
    g = .GroupFromPoint(x , y)
    If !isnull(g)
    with g
            wait window nowait .Caption
       endwith
    EndIf
EndWith

The following VFP sample displays the caption of the item from the cursor:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local i
    i = .ItemFromPoint(x , y)
    If !isnull(i)
        with i
            wait window nowait .Caption
       endwith
    EndIf
EndWith


event MouseUp

event MouseUp (Button as Integer, Shift as Integer, X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS)
Occurs when the user releases a mouse button.

Type | Description
Button as Integer | An integer that identifies the button that was pressed to cause the event.
Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys when the button specified in the button argument is pressed or released.
X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in container coordinates.
Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The y values is always expressed in container coordinates.

Use a MouseDown or MouseUp event procedure to specify actions that will occur when a mouse button is pressed or released. Unlike the Click and DblClick events, MouseDown and MouseUp events lets you distinguish between the left, right, and middle mouse buttons. You can also write code for mouse-keyboard combinations that use the SHIFT, CTRL, and ALT keyboard modifiers. Use the ItemFromPoint property to get the item over cursor. Use the GroupFromPoint property to get the group over cursor.

Syntax for MouseUp event, /NET version, on:

private void MouseUpEvent(object sender,short Button,short Shift,int X,int Y)
{
}

Private Sub MouseUpEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles MouseUpEvent
End Sub

Syntax for MouseUp event, /COM version, on:

private void MouseUpEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseUpEvent e)
{
}

void OnMouseUp(short Button,short Shift,long X,long Y)
{
}

void __fastcall MouseUp(TObject *Sender,short Button,short Shift,int X,int Y)
{
}

procedure MouseUp(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
end;

procedure MouseUpEvent(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_MouseUpEvent);
begin
end;

begin event MouseUp(integer Button,integer Shift,long X,long Y)
end event MouseUp

Private Sub MouseUpEvent(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseUpEvent) Handles MouseUpEvent
End Sub

Private Sub MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)
End Sub

Private Sub MouseUp(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Long,ByVal Y As Long)
End Sub

LPARAMETERS Button,Shift,X,Y

PROCEDURE OnMouseUp(oExplorerBar,Button,Shift,X,Y)
RETURN

Syntax for MouseUp event, /COM version (others), on:

<SCRIPT EVENT="MouseUp(Button,Shift,X,Y)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function MouseUp(Button,Shift,X,Y)
End Function
</SCRIPT>

Procedure OnComMouseUp Short llButton Short llShift OLE_XPOS_PIXELS llX OLE_YPOS_PIXELS llY
    Forward Send OnComMouseUp llButton llShift llX llY
End_Procedure

METHOD OCX_MouseUp(Button,Shift,X,Y) CLASS MainDialog
RETURN NIL

void onEvent_MouseUp(int _Button,int _Shift,int _X,int _Y)
{
}

function MouseUp as v (Button as N,Shift as N,X as OLE::Exontrol.ExplorerBar.1::OLE_XPOS_PIXELS,Y as OLE::Exontrol.ExplorerBar.1::OLE_YPOS_PIXELS)
end function

function nativeObject_MouseUp(Button,Shift,X,Y)
return

The following VB sample displays the caption of the group being clicked:

Private Sub ExplorerBar1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim g As Group
        Set g = .GroupFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not g Is Nothing Then
            MsgBox g.Caption
        End If
    End With
End Sub

The following VB sample displays the caption of the item being clicked:

Private Sub ExplorerBar1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ExplorerBar1
        Dim i As Item
        Set i = .ItemFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If Not i Is Nothing Then
            MsgBox i.Caption
        End If
    End With
End Sub

The following C++ sample displays the caption of the group being clicked:

void OnMouseUpExplorerbar1(short Button, short Shift, long X, long Y)
{
    CGroup group = m_explorerbar.GetGroupFromPoint( X, Y );
    if ( group.m_lpDispatch != NULL )
        MessageBox( group.GetCaption() );
}

The following C++ sample displays the caption of the item being clicked:

void OnMouseUpExplorerbar1(short Button, short Shift, long X, long Y)
{
    CItem item = m_explorerbar.GetItemFromPoint( X, Y );
    if ( item.m_lpDispatch != NULL )
        MessageBox( item.GetCaption() );
}

The following VB.NET sample displays the caption of the group being clicked:

Private Sub AxExplorerBar1_MouseUpEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseUpEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim g As EXPLORERBARLib.Group = .get_GroupFromPoint(e.x, e.y)
        If Not g Is Nothing Then
            MsgBox(g.Caption)
        End If
    End With
End Sub

The following VB.NET sample displays the caption of the item being clicked:

Private Sub AxExplorerBar1_MouseUpEvent(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_MouseUpEvent) Handles AxExplorerBar1.MouseDownEvent
    With AxExplorerBar1
        Dim i As EXPLORERBARLib.Item = .get_ItemFromPoint(e.x, e.y)
        If Not i Is Nothing Then
            MsgBox(i.Caption)
        End If
    End With
End Sub

The following C# sample displays the caption of the group being clicked:

private void axExplorerBar1_MouseUpEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseUpEvent e)
{
    EXPLORERBARLib.Group g = axExplorerBar1.get_GroupFromPoint(e.x, e.y);
    if (g != null)
        MessageBox.Show(g.Caption);
}

The following C# sample displays the caption of the item being clicked:

private void axExplorerBar1_MouseUpEvent(object sender, AxEXPLORERBARLib._IExplorerBarEvents_MouseUpEvent e)
{
    EXPLORERBARLib.Item i = axExplorerBar1.get_ItemFromPoint(e.x, e.y);
    if (i != null)
        MessageBox.Show(i.Caption);
}

The following VFP sample displays the caption of the group being clicked:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local g
    g = .GroupFromPoint(x , y)
    If !isnull(g)
        with g
            wait window nowait .Caption
       endwith
    EndIf
EndWith

The following VFP sample displays the caption of the item being clicked:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ExplorerBar1
    local i
    i = .ItemFromPoint(x , y)
    If !isnull(i)
        with i
            wait window nowait .Caption
       endwith
    EndIf
EndWith


event RClick ()
Fired when right mouse button is clicked

Type Description

The RClick event is fired each time the user releases the right mouse button over the control. Use the MouseDown or MouseUp event if you require the cursor coordinates. You can use the GetCursorPos API function. Use the ItemFromPoint property to get the item over cursor. Use the GroupFromPoint property to get the group over cursor.

Syntax for RClick event, /NET version, on:

private void RClick(object sender)
{
}

Private Sub RClick(ByVal sender As System.Object) Handles RClick
End Sub

Syntax for RClick event, /COM version, on:

private void RClick(object sender, EventArgs e)
{
}

void OnRClick()
{
}

void __fastcall RClick(TObject *Sender)
{
}

procedure RClick(ASender: TObject; );
begin
end;

procedure RClick(sender: System.Object; e: System.EventArgs);
begin
end;

begin event RClick()
end event RClick

Private Sub RClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RClick
End Sub

Private Sub RClick()
End Sub

Private Sub RClick()
End Sub

LPARAMETERS nop

PROCEDURE OnRClick(oExplorerBar)
RETURN

Syntax for RClick event, /COM version (others), on:

<SCRIPT EVENT="RClick()" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function RClick()
End Function
</SCRIPT>

Procedure OnComRClick
    Forward Send OnComRClick
End_Procedure

METHOD OCX_RClick() CLASS MainDialog
RETURN NIL

void onEvent_RClick()
{
}

function RClick as v ()
end function

function nativeObject_RClick()
return


event RemoveGroup

event RemoveGroup (Group as Group)
Fired when a group was removed.

Type | Description
Group as Group | A Group object being removed.

Use the RemoveGroup event to notify your application that a group is removed. Use the RemoveGroup event to release any extra data stored by the group. Use the Remove method to remove a group. Use the RemoveItem event to notify your application that an item is deleted. Use the UserData property to associate an extra data to a group.

Syntax for RemoveGroup event, /NET version, on:

private void RemoveGroup(object sender,exontrol.EXPLORERBARLib.Group Group)
{
}

Private Sub RemoveGroup(ByVal sender As System.Object,ByVal Group As exontrol.EXPLORERBARLib.Group) Handles RemoveGroup
End Sub

Syntax for RemoveGroup event, /COM version, on:

private void RemoveGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_RemoveGroupEvent e)
{
}

void OnRemoveGroup(LPDISPATCH Group)
{
}

void __fastcall RemoveGroup(TObject *Sender,Explorerbarlib_tlb::IGroup *Group)
{
}

procedure RemoveGroup(ASender: TObject; Group : IGroup);
begin
end;

procedure RemoveGroup(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_RemoveGroupEvent);
begin
end;

begin event RemoveGroup(oleobject Group)
end event RemoveGroup

Private Sub RemoveGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_RemoveGroupEvent) Handles RemoveGroup
End Sub

Private Sub RemoveGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
End Sub

Private Sub RemoveGroup(ByVal Group As Object)
End Sub

LPARAMETERS Group

PROCEDURE OnRemoveGroup(oExplorerBar,Group)
RETURN

Syntax for RemoveGroup event, /COM version (others), on:

<SCRIPT EVENT="RemoveGroup(Group)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function RemoveGroup(Group)
End Function
</SCRIPT>

Procedure OnComRemoveGroup Variant llGroup
    Forward Send OnComRemoveGroup llGroup
End_Procedure

METHOD OCX_RemoveGroup(Group) CLASS MainDialog
RETURN NIL

void onEvent_RemoveGroup(COM _Group)
{
}

function RemoveGroup as v (Group as OLE::Exontrol.ExplorerBar.1::IGroup)
end function

function nativeObject_RemoveGroup(Group)
return

The following VB sample displays the caption of the group being removed:

Private Sub ExplorerBar1_RemoveGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    Debug.Print Group.Caption
End Sub

The following C++ sample displays the caption of the group being removed:

void OnRemoveGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    CString strOutput;
    strOutput.Format("%s", (LPCTSTR)group.GetCaption() );
    OutputDebugString( strOutput );
}

The following VB.NET sample displays the caption of the group being removed:

Private Sub AxExplorerBar1_RemoveGroup(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_RemoveGroupEvent) Handles AxExplorerBar1.RemoveGroup
    Debug.WriteLine(e.group.Caption)
End Sub

The following C# sample displays the caption of the group being removed:

private void axExplorerBar1_RemoveGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_RemoveGroupEvent e)
{
    System.Diagnostics.Debug.WriteLine(e.group.Caption);
}

The following VFP sample displays the caption of the group being removed:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    wait window nowait .Caption
endwith


event RemoveItem

event RemoveItem (Item as Item)
Fired when an item was removed.

Type | Description
Item as Item | An Item object being removed.

use the RemoveItem event to notify your application that an Item is removed. Use the RemoveItem event to release any extra data hold by an Item object. Use the RemoveItem method to remove an item. The control fires the RemoveGroup event when a group is removed. Use the UserData property to associate an extra data to an item. Use the Visible property to hide an item.

Syntax for RemoveItem event, /NET version, on:

private void RemoveItem(object sender,exontrol.EXPLORERBARLib.Item Item)
{
}

Private Sub RemoveItem(ByVal sender As System.Object,ByVal Item As exontrol.EXPLORERBARLib.Item) Handles RemoveItem
End Sub

Syntax for RemoveItem event, /COM version, on:

private void RemoveItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_RemoveItemEvent e)
{
}

void OnRemoveItem(LPDISPATCH Item)
{
}

void __fastcall RemoveItem(TObject *Sender,Explorerbarlib_tlb::IItem *Item)
{
}

procedure RemoveItem(ASender: TObject; Item : IItem);
begin
end;

procedure RemoveItem(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_RemoveItemEvent);
begin
end;

begin event RemoveItem(oleobject Item)
end event RemoveItem

Private Sub RemoveItem(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_RemoveItemEvent) Handles RemoveItem
End Sub

Private Sub RemoveItem(ByVal Item As EXPLORERBARLibCtl.IItem)
End Sub

Private Sub RemoveItem(ByVal Item As Object)
End Sub

LPARAMETERS Item

PROCEDURE OnRemoveItem(oExplorerBar,Item)
RETURN

Syntax for RemoveItem event, /COM version (others), on:

<SCRIPT EVENT="RemoveItem(Item)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function RemoveItem(Item)
End Function
</SCRIPT>

Procedure OnComRemoveItem Variant llItem
    Forward Send OnComRemoveItem llItem
End_Procedure

METHOD OCX_RemoveItem(Item) CLASS MainDialog
RETURN NIL

void onEvent_RemoveItem(COM _Item)
{
}

function RemoveItem as v (Item as OLE::Exontrol.ExplorerBar.1::IItem)
end function

function nativeObject_RemoveItem(Item)
return

The following VB sample prints the caption of the item being removed:

Private Sub ExplorerBar1_RemoveItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    With Item
        Debug.Print .Caption
    End With
End Sub

The following C++ sample prints the caption of the item being removed:

void OnRemoveItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    CString strOutput;
    strOutput.Format("%s", (LPCTSTR)item.GetCaption() );
    OutputDebugString( strOutput );
}

The following VB.NET sample prints the caption of the item being removed:

Private Sub AxExplorerBar1_RemoveItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_RemoveItemEvent) Handles AxExplorerBar1.RemoveItem
    With e.item
        Debug.WriteLine(.Caption)
    End With
End Sub

The following C# sample prints the caption of the item being removed:

private void axExplorerBar1_RemoveItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_RemoveItemEvent e)
{
    System.Diagnostics.Debug.WriteLine(e.item.Caption);
}

The following VFP sample prints the caption of the item being removed:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    wait window nowait .Caption
endwith


event ScrollButtonClick

event ScrollButtonClick (ScrollPart as ScrollPartEnum)
Occurs when the user clicks a button in the scrollbar.

Type | Description
ScrollPart as ScrollPartEnum | A ScrollPartEnum expression that indicates the part of the scroll being clicked.
The control displays a vertical scroll bar only when required. Use the ScrollButtonClick event to notify your application that the user clicks a button in the control's scrollbar. The ScrollButtonClick event is fired when the user clicks and releases the mouse over an enabled part of the scroll bar. Use the ScrollPartVisible property to add or remove buttons/parts in the control's scrollbar. Use the ScrollPartEnable property to specify enable or disable parts in the control's scrollbar. Use the ScrolPartCaption property to specify the caption of the scroll's part. Use the Background property to change the visual appearance for any part in the control's scroll bar.

Syntax for ScrollButtonClick event, /NET version, on:

private void ScrollButtonClick(object sender,exontrol.EXPLORERBARLib.ScrollPartEnum ScrollPart)
{
}

Private Sub ScrollButtonClick(ByVal sender As System.Object,ByVal ScrollPart As exontrol.EXPLORERBARLib.ScrollPartEnum) Handles ScrollButtonClick
End Sub

Syntax for ScrollButtonClick event, /COM version, on:

private void ScrollButtonClick(object sender, AxEXPLORERBARLib._IExplorerBarEvents_ScrollButtonClickEvent e)
{
}

void OnScrollButtonClick(long ScrollPart)
{
}

void __fastcall ScrollButtonClick(TObject *Sender,Explorerbarlib_tlb::ScrollPartEnum ScrollPart)
{
}

procedure ScrollButtonClick(ASender: TObject; ScrollPart : ScrollPartEnum);
begin
end;

procedure ScrollButtonClick(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_ScrollButtonClickEvent);
begin
end;

begin event ScrollButtonClick(long ScrollPart)
end event ScrollButtonClick

Private Sub ScrollButtonClick(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_ScrollButtonClickEvent) Handles ScrollButtonClick
End Sub

Private Sub ScrollButtonClick(ByVal ScrollPart As EXPLORERBARLibCtl.ScrollPartEnum)
End Sub

Private Sub ScrollButtonClick(ByVal ScrollPart As Long)
End Sub

LPARAMETERS ScrollPart

PROCEDURE OnScrollButtonClick(oExplorerBar,ScrollPart)
RETURN

Syntax for ScrollButtonClick event, /COM version (others), on:

<SCRIPT EVENT="ScrollButtonClick(ScrollPart)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function ScrollButtonClick(ScrollPart)
End Function
</SCRIPT>

Procedure OnComScrollButtonClick OLEScrollPartEnum llScrollPart
    Forward Send OnComScrollButtonClick llScrollPart
End_Procedure

METHOD OCX_ScrollButtonClick(ScrollPart) CLASS MainDialog
RETURN NIL

void onEvent_ScrollButtonClick(int _ScrollPart)
{
}

function ScrollButtonClick as v (ScrollPart as OLE::Exontrol.ExplorerBar.1::ScrollPartEnum)
end function

function nativeObject_ScrollButtonClick(ScrollPart)
return


event SelectGroup

event SelectGroup (Group as Group)
Occurs when a group is clicked.

Type | Description
Group as Group | A Group object being selected.

Use the SelectGroup event to notify your application that a group is selected. The control fires the SelectItem event when the user clicks an item. The control fires the BeforeExpandGroup event before expanding a group. The control fires the ExpandGroup event after expanding a group.

Syntax for SelectGroup event, /NET version, on:

private void SelectGroup(object sender,exontrol.EXPLORERBARLib.Group Group)
{
}

Private Sub SelectGroup(ByVal sender As System.Object,ByVal Group As exontrol.EXPLORERBARLib.Group) Handles SelectGroup
End Sub

Syntax for SelectGroup event, /COM version, on:

private void SelectGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_SelectGroupEvent e)
{
}

void OnSelectGroup(LPDISPATCH Group)
{
}

void __fastcall SelectGroup(TObject *Sender,Explorerbarlib_tlb::IGroup *Group)
{
}

procedure SelectGroup(ASender: TObject; Group : IGroup);
begin
end;

procedure SelectGroup(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_SelectGroupEvent);
begin
end;

begin event SelectGroup(oleobject Group)
end event SelectGroup

Private Sub SelectGroup(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_SelectGroupEvent) Handles SelectGroup
End Sub

Private Sub SelectGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
End Sub

Private Sub SelectGroup(ByVal Group As Object)
End Sub

LPARAMETERS Group

PROCEDURE OnSelectGroup(oExplorerBar,Group)
RETURN

Syntax for SelectGroup event, /COM version (others), on:

<SCRIPT EVENT="SelectGroup(Group)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function SelectGroup(Group)
End Function
</SCRIPT>

Procedure OnComSelectGroup Variant llGroup
    Forward Send OnComSelectGroup llGroup
End_Procedure

METHOD OCX_SelectGroup(Group) CLASS MainDialog
RETURN NIL

void onEvent_SelectGroup(COM _Group)
{
}

function SelectGroup as v (Group as OLE::Exontrol.ExplorerBar.1::IGroup)
end function

function nativeObject_SelectGroup(Group)
return

The following VB sample displays the caption of the group being selected:

Private Sub ExplorerBar1_SelectGroup(ByVal Group As EXPLORERBARLibCtl.IGroup)
    Debug.Print Group.Caption
End Sub

The following C++ sample displays the caption of the group being selected:

void OnSelectGroupExplorerbar1(LPDISPATCH Group)
{
    CGroup group( Group ); group.m_bAutoRelease = FALSE;
    CString strOutput;
    strOutput.Format("%s", (LPCTSTR)group.GetCaption() );
    OutputDebugString( strOutput );
}

The following VB.NET sample displays the caption of the group being selected:

Private Sub AxExplorerBar1_SelectGroup(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_SelectGroupEvent) Handles AxExplorerBar1.SelectGroup
    With e.group
        Debug.WriteLine(.Caption)
    End With
End Sub

The following C# sample displays the caption of the group being selected:

private void axExplorerBar1_SelectGroup(object sender, AxEXPLORERBARLib._IExplorerBarEvents_SelectGroupEvent e)
{
    System.Diagnostics.Debug.WriteLine(e.group.Caption);
}

The following VFP sample displays the caption of the group being selected:

*** ActiveX Control Event ***
LPARAMETERS group

with group
    wait window nowait .Caption
endwith


event SelectItem

event SelectItem (Item as Item)
Occurs when an item is selected.

Type | Description
Item as Item | An Item object being selected.

Use the SelectItem event to notify your application that a new item is selected ( clicked ). The SelectItem event is fired when the user presses the ENTER key, and the ShowFocusRect property is True. The HighLightItem event occurs when the cursor hovers an item. Use the Caption property to get the caption of the item. Use the Caption property to get the caption of the group.

Syntax for SelectItem event, /NET version, on:

private void SelectItem(object sender,exontrol.EXPLORERBARLib.Item Item)
{
}

Private Sub SelectItem(ByVal sender As System.Object,ByVal Item As exontrol.EXPLORERBARLib.Item) Handles SelectItem
End Sub

Syntax for SelectItem event, /COM version, on:

private void SelectItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_SelectItemEvent e)
{
}

void OnSelectItem(LPDISPATCH Item)
{
}

void __fastcall SelectItem(TObject *Sender,Explorerbarlib_tlb::IItem *Item)
{
}

procedure SelectItem(ASender: TObject; Item : IItem);
begin
end;

procedure SelectItem(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_SelectItemEvent);
begin
end;

begin event SelectItem(oleobject Item)
end event SelectItem

Private Sub SelectItem(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_SelectItemEvent) Handles SelectItem
End Sub

Private Sub SelectItem(ByVal Item As EXPLORERBARLibCtl.IItem)
End Sub

Private Sub SelectItem(ByVal Item As Object)
End Sub

LPARAMETERS Item

PROCEDURE OnSelectItem(oExplorerBar,Item)
RETURN

Syntax for SelectItem event, /COM version (others), on:

<SCRIPT EVENT="SelectItem(Item)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function SelectItem(Item)
End Function
</SCRIPT>

Procedure OnComSelectItem Variant llItem
    Forward Send OnComSelectItem llItem
End_Procedure

METHOD OCX_SelectItem(Item) CLASS MainDialog
RETURN NIL

void onEvent_SelectItem(COM _Item)
{
}

function SelectItem as v (Item as OLE::Exontrol.ExplorerBar.1::IItem)
end function

function nativeObject_SelectItem(Item)
return

The following VB sample displays the caption of the item being selected:

Private Sub ExplorerBar1_SelectItem(ByVal Item As EXPLORERBARLibCtl.IItem)
    Debug.Print Item.Caption
End Sub

The following C++ sample displays the caption of the item being selected:

void OnSelectItemExplorerbar1(LPDISPATCH Item)
{
    CItem item( Item ); item.m_bAutoRelease = FALSE;
    CString strOutput;
    strOutput.Format("%s", (LPCTSTR)item.GetCaption() );
    OutputDebugString( strOutput );
}

The following VB.NET sample displays the caption of the item being selected:

Private Sub AxExplorerBar1_SelectItem(ByVal sender As Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_SelectItemEvent) Handles AxExplorerBar1.SelectItem
    With e.item
        Debug.WriteLine(.Caption)
    End With
End Sub

The following C# sample displays the caption of the item being selected:

private void axExplorerBar1_SelectItem(object sender, AxEXPLORERBARLib._IExplorerBarEvents_SelectItemEvent e)
{
    System.Diagnostics.Debug.WriteLine(e.item.Caption);
}

The following VFP sample displays the caption of the item being selected:

*** ActiveX Control Event ***
LPARAMETERS item

with item
    wait window nowait .Caption
endwith


event SelectShortcut

event SelectShortcut (OldShortcut as Variant, NewShortcut as Variant)
Fired when the user selects a new shortcut.

Type | Description
OldShortcut as Variant | A String expression that indicates the caption of the shortcut being unselected.
NewShortcut as Variant | A String expression that indicates the caption of the shortcut being unselected.
The SelectShortcut event notifies your application when the user selects a shortcut. The SelectShortcut event is fired if the user clicks a shortcut in the shortcut bar, or if the code calls the SelectShortcut property. The ShowShortcutBar property shows or hides the control's shortcut bar. The Shortcut property indicates the HTML caption of the shortcut that displays the specified group. Groups with the same Shortcut property are displayed in the same shortcut. The ShortcutPicture property assigns a custom size picture to a shortcut.

Syntax for SelectShortcut event, /NET version, on:

private void SelectShortcut(object sender,object OldShortcut,object NewShortcut)
{
}

Private Sub SelectShortcut(ByVal sender As System.Object,ByVal OldShortcut As Object,ByVal NewShortcut As Object) Handles SelectShortcut
End Sub

Syntax for SelectShortcut event, /COM version, on:

private void SelectShortcut(object sender, AxEXPLORERBARLib._IExplorerBarEvents_SelectShortcutEvent e)
{
}

void OnSelectShortcut(VARIANT OldShortcut,VARIANT NewShortcut)
{
}

void __fastcall SelectShortcut(TObject *Sender,Variant OldShortcut,Variant NewShortcut)
{
}

procedure SelectShortcut(ASender: TObject; OldShortcut : OleVariant;NewShortcut : OleVariant);
begin
end;

procedure SelectShortcut(sender: System.Object; e: AxEXPLORERBARLib._IExplorerBarEvents_SelectShortcutEvent);
begin
end;

begin event SelectShortcut(any OldShortcut,any NewShortcut)
end event SelectShortcut

Private Sub SelectShortcut(ByVal sender As System.Object, ByVal e As AxEXPLORERBARLib._IExplorerBarEvents_SelectShortcutEvent) Handles SelectShortcut
End Sub

Private Sub SelectShortcut(ByVal OldShortcut As Variant,ByVal NewShortcut As Variant)
End Sub

Private Sub SelectShortcut(ByVal OldShortcut As Variant,ByVal NewShortcut As Variant)
End Sub

LPARAMETERS OldShortcut,NewShortcut

PROCEDURE OnSelectShortcut(oExplorerBar,OldShortcut,NewShortcut)
RETURN

Syntax for SelectShortcut event, /COM version (others), on:

<SCRIPT EVENT="SelectShortcut(OldShortcut,NewShortcut)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function SelectShortcut(OldShortcut,NewShortcut)
End Function
</SCRIPT>

Procedure OnComSelectShortcut Variant llOldShortcut Variant llNewShortcut
    Forward Send OnComSelectShortcut llOldShortcut llNewShortcut
End_Procedure

METHOD OCX_SelectShortcut(OldShortcut,NewShortcut) CLASS MainDialog
RETURN NIL

void onEvent_SelectShortcut(COMVariant _OldShortcut,COMVariant _NewShortcut)
{
}

function SelectShortcut as v (OldShortcut as A,NewShortcut as A)
end function

function nativeObject_SelectShortcut(OldShortcut,NewShortcut)
return