请教下 Devpress.XtraGrid 怎样修改单元格Tooltip的内容

hard_learner 2014-07-07 05:04:47
请教下 Devpress.XtraGrid 怎样修改单元格Tooltip的内容,例如一个单元格显示单据状态是退回,我想在鼠标放到这个单元格的时候能够显示退回原因及退回时间,类似于BS下面设置的控件的title属性一样
...全文
198 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hard_learner 2014-07-31
  • 打赏
  • 举报
回复
引用 1 楼 happy09li 的回复:
     /// <summary>
        /// 鼠标事件,以浮动窗口显示订单备注
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gvOrders_MouseMove(object sender, MouseEventArgs e)
        {
            // 获取鼠标焦点
            DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hi = gvOrders.CalcHitInfo(new Point(e.X, e.Y));

            // 如果鼠标不是在行上.或者不在列上
            if (hi.RowHandle < 0 || hi.Column == null)
            {
                _RowHandle = -1;
                return;
            }

            // rowHandle为全局变量,如果上次指向的是这一行的数据.则这次不重新初始化ToolTip.(因为鼠标一移到列上面则会触发多次的MouseMove)
            // 如果RowHandle为不等于rowHandle则重新显示ToolTip
            if (_RowHandle == -1)
            {
                _RowHandle = hi.RowHandle;
            }
            else
            {
                if (hi.RowHandle == _RowHandle)
                {
                    return;
                }
                else
                {
                    _RowHandle = hi.RowHandle;
                }
            }

            // 获取行
            DataRow row = gvOrders.GetDataRow(hi.RowHandle);

            // 只有在订单编号列的时候才显示ToolTip
            if (hi.Column.FieldName == "OrderId")
            {
                // 创建ToolTip的数据显示,只有订单有备注的时候才显示ToolTip
                string tooltipText = row["OrderRemark"].ToString();
                string orderId = row["OrderId"].ToString();
                if (!string.IsNullOrEmpty(tooltipText))
                {
                    // 获取显示ToolTip事件实例
                    ToolTipControllerShowEventArgs args = CreateShowArgs(tooltipText);

                    // 设置ToolTip标题
                    args.Title = "test";

                    // 显示ToolTip 这里不可以用控件的坐标.要用屏幕的坐标Control.MousePosition
                    toolTipController.ShowHint(args, System.Windows.Forms.Control.MousePosition);
                }
            }
        }

        /// <summary>
        /// 创建显示ToolTip事件实例
        /// </summary>
        /// <param name="tooltipText"></param>
        /// <returns></returns>
        private ToolTipControllerShowEventArgs CreateShowArgs(string tooltipText)
        {
            ToolTipControllerShowEventArgs args = toolTipController.CreateShowArgs();
            args.ToolTip = tooltipText;
            return args;
        }
非常感谢,最近太忙一直没登陆CSDN结贴
熙风 2014-07-07
  • 打赏
  • 举报
回复
     /// <summary>
        /// 鼠标事件,以浮动窗口显示订单备注
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gvOrders_MouseMove(object sender, MouseEventArgs e)
        {
            // 获取鼠标焦点
            DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hi = gvOrders.CalcHitInfo(new Point(e.X, e.Y));

            // 如果鼠标不是在行上.或者不在列上
            if (hi.RowHandle < 0 || hi.Column == null)
            {
                _RowHandle = -1;
                return;
            }

            // rowHandle为全局变量,如果上次指向的是这一行的数据.则这次不重新初始化ToolTip.(因为鼠标一移到列上面则会触发多次的MouseMove)
            // 如果RowHandle为不等于rowHandle则重新显示ToolTip
            if (_RowHandle == -1)
            {
                _RowHandle = hi.RowHandle;
            }
            else
            {
                if (hi.RowHandle == _RowHandle)
                {
                    return;
                }
                else
                {
                    _RowHandle = hi.RowHandle;
                }
            }

            // 获取行
            DataRow row = gvOrders.GetDataRow(hi.RowHandle);

            // 只有在订单编号列的时候才显示ToolTip
            if (hi.Column.FieldName == "OrderId")
            {
                // 创建ToolTip的数据显示,只有订单有备注的时候才显示ToolTip
                string tooltipText = row["OrderRemark"].ToString();
                string orderId = row["OrderId"].ToString();
                if (!string.IsNullOrEmpty(tooltipText))
                {
                    // 获取显示ToolTip事件实例
                    ToolTipControllerShowEventArgs args = CreateShowArgs(tooltipText);

                    // 设置ToolTip标题
                    args.Title = "test";

                    // 显示ToolTip 这里不可以用控件的坐标.要用屏幕的坐标Control.MousePosition
                    toolTipController.ShowHint(args, System.Windows.Forms.Control.MousePosition);
                }
            }
        }

        /// <summary>
        /// 创建显示ToolTip事件实例
        /// </summary>
        /// <param name="tooltipText"></param>
        /// <returns></returns>
        private ToolTipControllerShowEventArgs CreateShowArgs(string tooltipText)
        {
            ToolTipControllerShowEventArgs args = toolTipController.CreateShowArgs();
            args.ToolTip = tooltipText;
            return args;
        }

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧