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;
                 }
             }
         }
     }
 }
Exemple #2
0
 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);
                        }
                    }
                }
            }
        }
Exemple #4
0
        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();
            }
        }
Exemple #5
0
 /// <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;
            }
        }
Exemple #7
0
 /// <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);
         }
     }
 }