private void detailView1_MouseDown(object sender, MouseEventArgs e) { if ((Control.ModifierKeys & Keys.Control) != Keys.Control) { GridView view = sender as GridView; GridHitInfo hi = view.CalcHitInfo(e.Location); if (hi.InRowCell) { if (hi.Column.RealColumnEdit.GetType() == typeof(RepositoryItemButtonEdit)) { view.FocusedRowHandle = hi.RowHandle; view.FocusedColumn = hi.Column; view.ShowEditor(); //force button click ButtonEdit edit = (view.ActiveEditor as ButtonEdit); Point p = view.GridControl.PointToScreen(e.Location); p = edit.PointToClient(p); EditHitInfo ehi = (edit.GetViewInfo() as ButtonEditViewInfo).CalcHitInfo(p); if (ehi.HitTest == EditHitTest.Button) { edit.PerformClick(ehi.HitObject as EditorButton); ((DevExpress.Utils.DXMouseEventArgs)e).Handled = true; } } } } }
private void OnGetActiveObject(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e) { if (e.SelectedControl == checkedComboBoxEdit1) { PopupContainerEditViewInfo editInfo = checkedComboBoxEdit1.GetViewInfo() as PopupContainerEditViewInfo; EditHitInfo hitInfo = editInfo.CalcHitInfo(e.ControlMousePosition); if (hitInfo.HitTest == EditHitTest.MaskBox) { object val = checkedComboBoxEdit1.EditValue; if (val == null || val == DBNull.Value || val.Equals(string.Empty)) { return; } string[] checkedItems = checkedComboBoxEdit1.Text.Split(separatorChar); Rectangle rect = editInfo.MaskBoxRect; string description = GetCheckedItemDescription(checkedItems, editInfo.PaintAppearance.Font, e.ControlMousePosition, rect); int itemIndex = GetItemIndex(checkedComboBoxEdit1, description); if (itemIndex == -1) { return; } ToolTipControlInfo tInfo = tInfo = new ToolTipControlInfo(); tInfo.Object = itemIndex; tInfo.SuperTip = GetSuperToolTip(checkedComboBoxEdit1, (carsBindingSource.DataSource as DataTable).Rows[itemIndex]); e.Info = tInfo; } } }
/// <summary> /// 为节点提供Tooltip /// 说明: /// 1.设置tree.ToolTipController属性 /// 2.ToolTipController的GetActiveObjectInfo事件中使用 /// 3.举例 /// tlLHData.CustomNodeTooltip(e, node => ///{ /// string _cabId = node.GetKeyID(); /// CCabInfo _cabinfo = LHDBHelper.GetCabInfo(_cabId); /// if (_cabinfo != null) /// { /// return string.Format("核对时间:{0}\r\n在线情况:{1}\r\n最后一次活跃时间:{2}\r\n", /// _cabinfo.ChkDataTime, /// _cabinfo.CtuOnlineStatus == 1 ? "在线" : "未上线", /// _cabinfo.LastAliveTime); /// } /// return string.Empty; ///}); /// </summary> /// <param name="tree">TreeList</param> /// <param name="e">ToolTipControllerGetActiveObjectInfoEventArgs</param> /// <param name="builderNodeTooltipFactory">委托</param> public static void CustomNodeTooltip(this TreeList tree, ToolTipControllerGetActiveObjectInfoEventArgs e, Func <TreeListNode, string> builderNodeTooltipFactory) { if (e.SelectedControl is DevExpress.XtraTreeList.TreeList) { TreeList _tree = (TreeList)e.SelectedControl; TreeListHitInfo _hit = _tree.CalcHitInfo(e.ControlMousePosition); if (_hit.HitInfoType == HitInfoType.Cell) { TreeListViewInfo _viewInfo = _tree.ViewInfo; RowInfo _rowInfo = _viewInfo.GetRowInfoByPoint(e.ControlMousePosition); CellInfo _cellInfo = _rowInfo.Cells[_hit.Column.VisibleIndex] as CellInfo; EditHitInfo _editHitInfo = _cellInfo.EditorViewInfo.CalcHitInfo(e.ControlMousePosition); if (_editHitInfo.HitTest == EditHitTest.MaskBox) { string _toolTip = builderNodeTooltipFactory(_hit.Node); if (!string.IsNullOrEmpty(_toolTip)) { e.Info = new ToolTipControlInfo(_cellInfo, _toolTip); } } } } }
protected override void OnMouseDoubleClick(MouseEventArgs e) { base.OnMouseDoubleClick(e); EditHitInfo info = ViewInfo.CalcHitInfo(new Point(e.X, e.Y)); if (info.HitTest == EditHitTest.None || info.HitTest == EditHitTest.MaskBox) { _popupWindowHelper.ShowObject(); } }
/// <summary> /// /// </summary> /// <param name="e"></param> protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); if (base.Parent != null) { base.UpdateViewInfoState(); if (e.Button == MouseButtons.Left) { EditHitInfo info1 = ViewInfo.CalcHitInfo(new Point(e.X, e.Y)); if (((info1.HitTest == EditHitTest.Button) && AllowButtonPress) && ViewInfo.CanPress(info1)) { ViewInfo.PressedInfo = info1; RefreshVisualLayout(); OnPressButton(info1.HitObject as EditorButtonObjectInfoArgs); } } } }
protected virtual void RaiseButtonClick(UxGridView gridView, GridColumn column, int rowHandle, MouseEventArgs e) { //Adapted from https://supportcenter.devexpress.com/ticket/details/t230842/grid-the-buttonclick-event-is-not-raised-immediately-when-multi-selection-is-enabled gridView.FocusedRowHandle = rowHandle; gridView.FocusedColumn = column; gridView.ShowEditor(); //force button click var edit = gridView.ActiveEditor.DowncastTo <ButtonEdit>(); var p = gridView.GridControl.PointToScreen(e.Location); p = edit.PointToClient(p); EditHitInfo ehi = (edit.GetViewInfo() as ButtonEditViewInfo).CalcHitInfo(p); if (ehi.HitTest == EditHitTest.Button) { edit.PerformClick(ehi.HitObject.DowncastTo <EditorButtonObjectInfoArgs>().Button); ((DXMouseEventArgs)e).Handled = true; } }
/// <summary> /// /// </summary> /// <param name="e"></param> protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); base.UpdateViewInfoState(); if (e.Button == MouseButtons.Left) { EditHitInfo info1 = ViewInfo.CalcHitInfo(new Point(e.X, e.Y)); EditHitInfo info2 = ViewInfo.PressedInfo; ClearHotPressed(); if ((info2 != null) && (info2.HitTest == EditHitTest.Button)) { NotifyButtonStateChanged((info2.HitObject as EditorButtonObjectInfoArgs).Button); } if ((AllowButtonPress && !info1.IsEmpty) && (ViewInfo.CompareHitInfo(info1, info2) && (info1.HitTest == EditHitTest.Button))) { OnClickButton(info1.HitObject as EditorButtonObjectInfoArgs); } } }