private void OnMouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left || !(sender is MyBandedGridView)) { return; } MyBandedGridView view = (MyBandedGridView)sender; BandedGridHitInfo hitInfo = view.CalcHitInfo(e.X, e.Y); if (hitInfo.HitTest == BandedGridHitTest.Band) { GridBandInfoArgs bandInfo = view.ViewInfo.BandsInfo[hitInfo.Band]; if (CalcButtonBounds(bandInfo.Bounds).Contains(e.X, e.Y)) { EditorButtonObjectInfoArgs bandButtonInfo = FindButtonInnerElement(bandInfo); if (bandButtonInfo != null) { bandButtonInfo.State = ObjectState.Pressed; view.InvalidateBandHeader(hitInfo.Band); } ((DXMouseEventArgs)e).Handled = true; } else { view.InvalidateBandHeader(hitInfo.Band); } } }
private void OnMouseUp(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left || !(sender is MyBandedGridView)) { return; } MyBandedGridView view = (MyBandedGridView)sender; BandedGridHitInfo hitInfo = view.CalcHitInfo(e.X, e.Y); if (hitInfo.HitTest == BandedGridHitTest.Band) { GridBandInfoArgs bandInfo = view.ViewInfo.BandsInfo[hitInfo.Band]; if (CalcButtonBounds(bandInfo.Bounds).Contains(e.X, e.Y)) { EditorButtonObjectInfoArgs bandButtonInfo = FindButtonInnerElement(bandInfo); if (bandButtonInfo != null) { for (int i = 0; i < hitInfo.Band.Columns.Count; i++) { if (!((MyBandedGridColumn)hitInfo.Band.Columns[i]).DefaultBandColumn) { hitInfo.Band.Columns[i].Visible = !hitInfo.Band.Columns[i].Visible; } } } ((DXMouseEventArgs)e).Handled = true; } } }
private void OnMouseMove(object sender, MouseEventArgs e) { if (!(sender is MyBandedGridView)) { return; } MyBandedGridView view = (MyBandedGridView)sender; BandedGridHitInfo hitInfo = view.CalcHitInfo(e.X, e.Y); if (hitInfo.HitTest == BandedGridHitTest.Band) { GridBandInfoArgs bandInfo = view.ViewInfo.BandsInfo[hitInfo.Band]; EditorButtonObjectInfoArgs bandButtonInfo = FindButtonInnerElement(bandInfo); if (bandButtonInfo != null) { if (CalcButtonBounds(bandInfo.Bounds).Contains(e.X, e.Y)) { bandButtonInfo.State = ObjectState.Hot; view.InvalidateBandHeader(hitInfo.Band); ((DXMouseEventArgs)e).Handled = true; } else { bandButtonInfo.State = ObjectState.Normal; view.InvalidateBandHeader(hitInfo.Band); } } } else { for (int i = 0; i < view.ViewInfo.BandsInfo.Count; i++) { EditorButtonObjectInfoArgs bandButtonInfo = FindButtonInnerElement(view.ViewInfo.BandsInfo[i]); if (bandButtonInfo != null) { bandButtonInfo.State = ObjectState.Normal; } } } }