A small library to solve some troubles, which I met during my work with DevExpress.
- XtraFormDev, XtraUserControlDev. The extensions which supports the update mechanism (Begin/EndUpdate to prevent visual/data changes during updating).
- CheckedListBoxControlDev. The extension for the standard component supports hotkeys for fast check/uncheck of items: check/uncheck all, invert check state.
- ColorPickEditDev, RepositoryItemColorPickEdit. The extensions for the standard components allows to save custom user colors during the program, so each ColorPickEdit and RepositoryItemColorPickEdit will have the same, actual user colors.
- DateDoubleTrackbarControlDev. The visual component, which allows users to select range of dates: start, end and date between them.
- PasswordTextEditDev. The extension for working with passwords, allows user to show/hide input characters.
- InputBoxValidableDev. InputBox with possibility of using custom function for user input validation.
- GroupControlCheckedDev. GroupControl with checkbox in header, allows user to disable/enable all controls in the GroupControl.
- MatrixGridControl and MdiManagerHelper. Use together to provide users the ability to conveniently and quickly arrange MDI forms;
- LookUpDev, RepositoryItemLookUpDev. The extensions for the standard component which supports:
- Show hints for each element in an editor;
- Draw splitter between elements (for example, to realize LRU spiltting). Just add interface to your DataSource item:
internal struct MusicStyleDataItem : ILookUpSplitableItem
- TreeListDev, TreeListSearchable. The extensions for the standard component which supports:
- GridView/BandedGridView extensions:
- Allows merging a Column and a Band header panel;
new GridPainterDev(bandedGridViewDev); // Init merger GridPainterDev.DisposePainter(bandedGridViewDev); // Dispose merger
- Improvement of 'BestFitColumns' to use width of band's title, not only columns;
- Improvements to work with merged cells: correct odd/even color, applying user changes to merged cells;
- Correct multiple checked changes for 'bool' columns with multiple selected rows;
- Cache for FormatRules, in case of DataSource changing;
- Auto-drawing histogram in a cell - just add keyword to a column Tag add set array of numbers in a grid cell;
colHistogram.Tag = GridHelper.IsHistogramColumn;
- Provides fast way to fill a DataTable structure based on the GridView structure;
- Custom user column header colorizing.
- Export full GridView table as an image ('GetAsImage'). DevExpress allows to export as an image only visible part of GridView, this method helps to export it all;
- Hotkeys for collapsing/expanding groupped rows, copy to clipboard with/without column headers, fast remove/clear selected rows;
- Custom group footer height.
Easy way to attach a ProgressBar to any XtraUserControl for long operations with user cancellation.
var handler = ProgressManager.InitMarquee(this);
//// Perform long business logic
new Task(() =>
{
while (true)
{
if (handler.Token.IsCancellationRequested)
{
//// Rollback logic
handler.Drop();
break;
}
}
}).Start();
- BaseEditExtension. Contains method 'IsValueEmpty' which allows validating input data of each BaseEdit control for emptiness. If necessary, set up the background color of the control to warning color.
- DateEditExtension. Contains method 'UpdateView' for DateEdit and RepositoryItemDateEdit to initialize the view of the control according to the datetime interval type.
- TreeListNodeExtension. Contains methods for correct processing of CheckState and Filtering for situations, when checkstate of the parent node depends on children and vice versa.
- ChartControlExtension:
- Contains method 'ColorizeSameColoredSeries', allowing to auto-change a hue for series with the same color;
- Contains lasso processor which provides functionality to select/deselect points in Point Series with lasso tool. Uses hotkeys: ctrl+mouse - to select, shift+mouse - to deselect, double click to clear selection.
- PropertyGridControlExtension. Contains method 'UpdateFieldsOrderByDisplayOrder' to sort created rows after 'RetrieveFields' based on a System.ComponentModel.DataAnnotations.Order field (was fixed in v22 DevExpress).
/// <summary> /// Base row info for a PropertyGridControl demo /// </summary> public class BaseRowInfo { /// <summary> /// Price /// </summary> [Category("Level"), Display(Name = "Price", Order = 0)] public decimal Price { get; set; } } /// <summary> /// Extended row info for a PropertyGridControl demo /// </summary> public sealed class ExtendedRowInfo :BaseRowInfo { /// <summary> /// Is level usable /// </summary> [Category("Level"), Display(Name = "Use level", Order = 3)] public bool Use { get; set; } }
- EnumExtension. Useful methods to work with enums:
- Allows to get caption/enum-value by DescriptionAttribute;
- Fill different DevExpress editors with enum values.
public enum TestEnum { [Description("Show angles on the map")] Angles, [Description("Show axis on the graph")] Axis } var caption = TestEnum.Angles.GetCaption();
- SkinHelper. Utils to work with colors considering the App Theme, get skin preview image.
- SolidBrushesCache. LRU cache for solid brushes.
SolidBrushesCache.GetBrushByColor(ForeColor)
- RegexMaskHelper. Common regex patterns to use as a Mask in editors/repositories.
- XtraUserControlHelper. Allows to show a XtraUserControl in popup window with float/dialog-box modes.
using (var control = new CalcProgressControl()) { XtraUserControlHelper.ShowControl(this, control, "Calculator", isSizable: true); }
- MDITabsDragHelper. Allows to switch between MDI tabs during standard .NET drag'n'drop operation.
_mdiTabsDragHelper = new MDITabsDragHelper(documentManager); _mdiTabsDragHelper.SelectNewPageOnDrag = true;
- NaturalStringComparer. Allows to do natural comparing/sort. DevExpress has it's own NaturalComparer, however it's not work for my case, such strings: 'S_505' and 'S_0505' will equal in DevExpress. But it shouldn't be.
- FormHelper. Give an opportunity to find, get and focus on a specific form with a specific title and tag. It is often used when you need to show a modal window only once.
- ControlScreenshotCapture. Class, which allows to capture screenshot from each sub-control/XtraTabPage/MDI form. On the screenshot a user selected the DateDoubleTrackbarControlDev component on the form and got image of it.