private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
 {
     if (Object.ReferenceEquals(e.SelectedControl, propertyGridControl1))
     {
         VGridHitInfo hitInfo = propertyGridControl1.CalcHitInfo(e.ControlMousePosition);
         if (hitInfo.Row != null)
         {
             PropertyDescriptor pd = propertyGridControl1.GetPropertyDescriptor(hitInfo.Row);
             if (pd != null)
             {
                 object o           = pd;
                 string description = string.Empty;
                 if (string.IsNullOrEmpty(pd.Description))
                 {
                     description = "No description available";
                 }
                 else
                 {
                     description = pd.Description;
                 }
                 e.Info = new DevExpress.Utils.ToolTipControlInfo(o, description);
             }
         }
     }
 }
Ejemplo n.º 2
0
        private void workGrid_MouseDown(object sender, MouseEventArgs e)
        {
            VGridHitInfo hit = workGrid.CalcHitInfo(e.Location);

            if (hit == null)
            {
                return;
            }

            switch (hit.HitInfoType)
            {
            case HitInfoTypeEnum.ValueCell:
                // Is No cell clicked?
                if (hit.Row.VisibleIndex == (int)EWorkItem.No)
                {
                    RecordIndex = hit.RecordIndex;
                    ResetAllRowBackground();
                }
                if (hit.Row.VisibleIndex == (int)EWorkItem.MeasureCH)
                {
                    string biasCh = (string)workGrid.GetCellValue(workGrid.VisibleRows[(int)EWorkItem.BiasCH], hit.RecordIndex);
                    AddMeasureChLookUpItems(biasCh);
                }
                break;
            }
        }
 int GetRecordIndex(VGridHitInfo dropHitInfo)
 {
     if (dropHitInfo.HitInfoType == HitInfoTypeEnum.ValueCell)
     {
         return(dropHitInfo.RecordIndex);
     }
     return(-1);
 }
 void ProcessMouseDown(VGridControl vGrid, MouseEventArgs e)
 {
     if (vGrid == null)
     {
         return;
     }
     captureHitInfo = vGrid.CalcHitInfo(new Point(e.X, e.Y));
 }
Ejemplo n.º 5
0
        void VGrid_MouseClick(object sender, MouseEventArgs e)
        {
            VGridHitInfo hitInfo = VGrid.CalcHitInfo(VGrid.PointToClient(this.PointToScreen(e.Location)));

            if (hitInfo.Row != null && e.Button == System.Windows.Forms.MouseButtons.Left &&
                e.Location.X - VGrid.ViewInfo[hitInfo.Row].ValuesRect.Left < 18 && e.Location.X - VGrid.ViewInfo[hitInfo.Row].ValuesRect.Left > 0)
            {
                RunFocusedLink();
            }
        }
        private bool ClickInEditor(MouseEventArgs e, out Rectangle editorBounds)
        {
            editorBounds = Rectangle.Empty;
            Point           location = e.Location;
            VGridHitInfo    hitInfo  = _VGrid.CalcHitInfo(location);
            BaseRowViewInfo viewInfo = _VGrid.ViewInfo[location];

            if (hitInfo.HitInfoType == HitInfoTypeEnum.HeaderCell && _Row == viewInfo.Row)
            {
                editorBounds = viewInfo.HeaderInfo.HeaderCellsRect;
                return(editorBounds.Contains(location));
            }
            return(false);
        }
        void ProcessDragDrop(VGridControl target, DragEventArgs e)
        {
            DragInfo     dragInfo = (DragInfo)e.Data.GetData(typeof(DragInfo));
            VGridControl source   = dragInfo.Grid;
            DataItem     item     = (DataItem)dragInfo.Data;

            if (item == null || source == null || target == null)
            {
                return;
            }
            VGridHitInfo dropHitInfo       = target.CalcHitInfo(target.PointToClient(new Point(e.X, e.Y)));
            int          targetRecordIndex = GetRecordIndex(dropHitInfo);

            RemoveRecord(source, item);
            AddRecord(target, item, targetRecordIndex);
            source.RefreshDataSource();
            target.RefreshDataSource();
        }
        private void vGridControl1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (isDragging)
            {
                VGridControl vGrid = sender as VGridControl;

                VGridHitInfo info = vGrid.CalcHitInfo(new Point(e.X, e.Y));
                if (((info.HitInfoType == HitInfoTypeEnum.HeaderCell) || (info.HitInfoType == HitInfoTypeEnum.Row)) &&
                    (info.Row != dragOverRow) && (info.Row != draggedRow))
                {
                    DragOverRow = info.Row;
                }
                else
                if ((info.HitInfoType == HitInfoTypeEnum.Empty) || (info.HitInfoType == HitInfoTypeEnum.ValueCell))
                {
                    DragOverRow = null;
                }
            }
        }
Ejemplo n.º 9
0
        private void workGrid_MouseDown(object sender, MouseEventArgs e)
        {
            VGridHitInfo hit = workGrid.CalcHitInfo(e.Location);

            if (hit == null)
            {
                return;
            }

            switch (hit.HitInfoType)
            {
            case HitInfoTypeEnum.ValueCell:
                // Is No cell clicked?
                if (hit.Row.VisibleIndex == (int)ETestWorkItem.No)
                {
                    RecordIndex = hit.RecordIndex;
                    ResetAllRowBackground();
                }
                break;
            }
        }
Ejemplo n.º 10
0
        private void OnCustomDrawRowHeaderCell(object sender, CustomDrawRowHeaderCellEventArgs e)
        {
            Point hitPoint = MousePosition;
            //if (!(e.Row is CategoryRow)) return;
            VGridControl grid    = (VGridControl)sender;
            VGridHitInfo hitInfo = ((VGridControl)sender).CalcHitInfo(grid.PointToClient(hitPoint));

            if (hitInfo.Row != e.Row)
            {
                return;
            }
            BaseRowViewInfo rowInfo = null;

            foreach (BaseRowViewInfo info in grid.ViewInfo.RowsViewInfo)
            {
                if (info is CategoryRowViewInfo)
                {
                    continue;
                }
                rowInfo = info;
                break;
            }
            if (rowInfo == null)
            {
                return;
            }
            RowValueInfo valueInfo = null;

            foreach (RowValueInfo info in rowInfo.ValuesInfo)
            {
                if (info.Bounds.X < hitInfo.PtMouse.X &&
                    info.Bounds.Right > hitInfo.PtMouse.X)
                {
                    valueInfo = info;
                    break;
                }
            }
            if (valueInfo == null)
            {
                return;
            }
            e.Handled = true;
            e.Appearance.DrawBackground(e.Cache, e.Bounds);
            e.Appearance.DrawString(e.Cache, e.Caption, e.CaptionRect);
            if (e.ImageIndex > 0)
            {
                ImageCollection.DrawImageListImage(e.Cache, e.Row.Properties.Images, e.ImageIndex,
                                                   e.ImageRect);
            }
            if (e.Focused)
            {
                XPaint.Graphics.DrawFocusRectangle(e.Graphics, e.FocusRect, e.Appearance.ForeColor,
                                                   e.Appearance.BackColor);
            }
            Rectangle hotTrackRect = new Rectangle(valueInfo.Bounds.X, e.Bounds.Y,
                                                   valueInfo.Bounds.Width, e.Bounds.Height);

            hotTrackRect.Inflate(-1, -1);
            e.Graphics.FillRectangle(Brushes.AliceBlue, hotTrackRect);
            e.Graphics.DrawRectangle(Pens.Blue, hotTrackRect);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 单击VGridview生成图表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void StatisticsAndChart_vGridControl_MouseClick(object sender, MouseEventArgs e)
        {
            DevExpress.XtraVerticalGrid.VGridControl gridcontrol = new DevExpress.XtraVerticalGrid.VGridControl();
            gridcontrol = sender as DevExpress.XtraVerticalGrid.VGridControl;
            VGridHitInfo info = gridcontrol.CalcHitInfo(new Point(e.X, e.Y));

            //当左键单击HeaderCell时
            if (info.HitInfoType == HitInfoTypeEnum.HeaderCell &&
                info.Row.HasChildren &&
                e.Button == MouseButtons.Left &&
                info.Row.Properties.Caption.IndexOf('*') != 0)
            {
                BaseRow     baserow = gridcontrol.FocusedRow;
                CategoryRow gr      = baserow as CategoryRow;
                //根据tag加载列数据
                if (gr != null && gr.Tag != null)
                {
                    string[] data = null;
                    //判断字段类型是否为数值型
                    if (gridview.Columns[gr.Properties.Caption].ColumnType.IsValueType)
                    {
                        //读取tag中的数据至数组
                        double[]      doubledata = gr.Tag as double[];
                        List <double> doublelist = doubledata.ToList();
                        //计算唯一值及唯一值个数
                        List <double> d_uniquevalue = doubledata.Distinct().ToList();
                        int           d_uniquecount = d_uniquevalue.Count;
                        //当唯一值个数大于30时,执行分组处理
                        if (d_uniquecount > 30)
                        {
                            //计算分组间距
                            double interval = (d_uniquevalue.Max() - d_uniquevalue.Min()) / 25;
                            //计算图表中加入点的值
                            List <string> chart_uniquevalue = new List <string>();
                            for (int n = 0; n < 26; n++)
                            {
                                if (n == 25)
                                {
                                    chart_uniquevalue.Add((interval * n).ToString("0.0") + "-" + d_uniquevalue.Max().ToString("0.0"));
                                }
                                else
                                {
                                    chart_uniquevalue.Add((interval * n).ToString("0.0") + "-" + (interval * (n + 1)).ToString("0.0"));
                                }
                            }
                            double max = d_uniquevalue.Max();
                            //chart_uniquevalue.Add((d_uniquevalue.Max()).ToString());
                            //声明26个list类型的数组
                            List <double>[] findlist = new List <double> [26];
                            for (int n = 0; n < 26; n++)
                            {
                                findlist[n] = new List <double>();
                            }
                            //根据分组间距,将所有数据存放到对应的26个list中
                            for (int n = 0; n < doublelist.Count; n++)
                            {
                                findlist[(int)(doublelist[n] / interval)].Add(doublelist[n]);
                            }
                            //完成分组
                            //清除图表数据,重新载入数据
                            for (int i = 0; i < StatisticsChart_chart1.Series.Count; i++)
                            {
                                StatisticsChart_chart1.Series.RemoveAt(i);
                            }
                            //创建图表
                            Series series = new Series(gr.Properties.Caption + "_Count", ViewType.Bar);
                            for (int n = 0; n < 26; n++)
                            {
                                series.Points.Add(new SeriesPoint(chart_uniquevalue[n].ToString(), findlist[n].Count));
                            }
                            StatisticsChart_chart1.Series.Add(series);
                        }
                        else
                        {
                            data = new string[gridview.RowCount];
                            for (int i = 0; i < doubledata.Count(); i++)
                            {
                                data[i] = doubledata[i].ToString();
                            }
                        }
                    }
                    else
                    {
                        data = new string[gridview.RowCount];
                        data = gr.Tag as string[];
                    }
                    if (data != null)
                    {
                        List <string> datalist = data.ToList();
                        //获取唯一值
                        List <string> UniqueValue = data.Distinct().ToList();
                        int           uniquecount = UniqueValue.Count;
                        if ((uniquecount <= 300) || (uniquecount > 300 && (MessageBox.Show("分类数较多,是否继续?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)))
                        {
                            //清除图表数据,重新载入数据
                            for (int i = 0; i < StatisticsChart_chart1.Series.Count; i++)
                            {
                                StatisticsChart_chart1.Series.RemoveAt(i);
                            }
                            //创建图表
                            Series series1 = new Series("", ViewType.Bar);
                            for (int i = 0; i < uniquecount; i++)
                            {
                                series1.Points.Add(new SeriesPoint(UniqueValue[i], (datalist.FindAll(value => value.Contains(UniqueValue[i]))).Count));
                            }
                            StatisticsChart_chart1.Series.Add(series1);
                        }
                    }
                    //生成X坐标轴名称
                    XYDiagram diagram = (XYDiagram)StatisticsChart_chart1.Diagram;
                    diagram.AxisX.Title.Visible   = true;
                    diagram.AxisX.Title.Alignment = StringAlignment.Center;
                    diagram.AxisX.Title.Text      = info.Row.Properties.Caption;
                    //生成Y坐标轴名称
                    diagram.AxisY.Title.Visible   = true;
                    diagram.AxisY.Title.Alignment = StringAlignment.Center;
                    diagram.AxisY.Title.Text      = "Count";
                }
            }
        }