private void OnCustomDrawColumnHeader(object sender, CustomDrawColumnHeaderEventArgs e) { if (e.Column == null) { return; } ColumnInfo info = (ColumnInfo)e.ObjectArgs; for (int i = 0; i < info.InnerElements.Count; i++) { if (info.InnerElements[i].ElementInfo is GridFilterButtonInfoArgs) { return; } } GridSmartSkinFilterButtonPainter painter = new GridSmartSkinFilterButtonPainter(UserLookAndFeel.Default); GridFilterButtonInfoArgs filterButtonInfo = new GridFilterButtonInfoArgs(); filterButtonInfo.Cache = e.Cache; filterButtonInfo.Graphics = e.Graphics; DrawElementInfo elementInfo = info.InnerElements.Add(painter, filterButtonInfo); elementInfo.RequireTotalBounds = true; info.InnerElements.CalcBounds(e.ObjectArgs, e.Cache, e.Painter.GetObjectClientRectangle(e.ObjectArgs), e.Bounds); Rectangle captionRect = e.CaptionRect; captionRect.Width -= elementInfo.ElementInfo.Bounds.Width; info.CaptionRect = captionRect; }
private void OnMouseMove(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.None) { return; } TreeListHitInfo hitInfo = ((TreeList)sender).CalcHitInfo(e.Location); if (hitInfo.HitInfoType == HitInfoType.Column) { ColumnInfo colInfo = ((TreeList)sender).ViewInfo.ColumnsInfo[hitInfo.Column]; GridFilterButtonInfoArgs filterButtonInfo = GetFilterButtonInfoArgs(colInfo); if (filterButtonInfo != null) { if (filterButtonInfo.Bounds.Contains(e.Location)) { filterButtonInfo.State = ObjectState.Hot; } else if (hitInfo.Column == columnFilterEngine.FilterShowingColumn) { filterButtonInfo.State = ObjectState.Pressed; } else { filterButtonInfo.State = ObjectState.Normal; } ((TreeList)sender).InvalidateColumnHeader(hitInfo.Column); } } else { foreach (TreeListColumn col in ((TreeList)sender).Columns) { ColumnInfo colInfo = ((TreeList)sender).ViewInfo.ColumnsInfo[col]; GridFilterButtonInfoArgs filterButtonInfo = GetFilterButtonInfoArgs(colInfo); if (col != columnFilterEngine.FilterShowingColumn && filterButtonInfo != null) { if (columnFilterConditions.ContainsColumn(col)) { filterButtonInfo.State = ObjectState.Selected; } else { filterButtonInfo.State = ObjectState.Normal; } ((TreeList)sender).InvalidateColumnHeader(col); } } } }
private void gridView1_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e) { GridFilterButtonInfoArgs args = null; foreach (DrawElementInfo deInfo in e.Info.InnerElements) { if (deInfo.ElementInfo.GetType() == typeof(GridFilterButtonInfoArgs)) { args = (GridFilterButtonInfoArgs)deInfo.ElementInfo; break; } } if (null == args) { return; } int x = e.Bounds.X + 5; int y = e.Bounds.Y + e.Bounds.Height / 2 - args.Bounds.Height / 2; args.Bounds = new Rectangle(new Point(x, y), args.Bounds.Size); }
private void OnMouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } TreeListHitInfo hitInfo = ((TreeList)sender).CalcHitInfo(e.Location); if (hitInfo.HitInfoType == HitInfoType.Column) { ColumnInfo colInfo = ((TreeList)sender).ViewInfo.ColumnsInfo[hitInfo.Column]; GridFilterButtonInfoArgs filterButtonInfo = GetFilterButtonInfoArgs(colInfo); if (filterButtonInfo != null && filterButtonInfo.Bounds.Contains(e.Location)) { filterButtonInfo.State = ObjectState.Pressed; ((TreeList)sender).InvalidateColumnHeader(hitInfo.Column); throw new HideException(); } } }