Beispiel #1
0
        /// <summary>
        /// 设置适配器
        /// </summary>
        /// <param name="adapter"></param>
        public void setAdapter(ReportViewAdapter adapter)
        {
            this.adapter = adapter;
            int count = adapter.getCount();

            adapter.next();
            if (isVerticalShowData)
            {
                //设置高度
                int height = adapter.getPositionRect().bottom - adapter.getPositionRect().top + padding;
                //this.Height = height * count + padding;

                Label lable = new Label();
                lable.Location = new Point(0, height * count + padding);
                lable.Text     = "";
                lable.Width    = 0;
                this.Controls.Add(lable);
            }
            else
            {
                //设置宽度
                int width = adapter.getPositionRect().right - adapter.getPositionRect().left + padding;
                this.Width = width * count + padding;
            }

            adapter.setIndex(-1);
        }
Beispiel #2
0
        /// <summary>
        /// 设置适配器
        /// </summary>
        /// <param name="adapter"></param>
        internal void setAdapter(ReportViewAdapter adapter)
        {
            this.adapter = adapter;
            //设置高度
            int count = adapter.getCount();

            adapter.next();
            int height = adapter.getPositionRect().bottom - adapter.getPositionRect().top + adapter.getPadding();

            this.Height = height * count + adapter.getPadding();
            adapter.setIndex(-1);
        }
Beispiel #3
0
        /// <summary>
        /// 绘制操作
        /// </summary>
        /// <param name="e"></param>
        protected override void OnPaint(PaintEventArgs e)
        {
            //自己声明的Graphics
            Graphics g = e.Graphics;

            if (backGroundColor != null)
            {
                Brush     background = new SolidBrush(backGroundColor);
                Rectangle rect       = new Rectangle(0, 0, this.Width, this.Height);
                g.FillRectangle(background, rect);
                background.Dispose();
            }
            if (adapter != null)
            {
                adapter.setIndex(-1);
                DataModel        data     = null;
                PositionRectData rectData = null;
                while (adapter.next())
                {
                    data     = adapter.getItem();
                    rectData = adapter.getPositionRect();
                    childPaint(e, rectData, myColor, TextColor);
                    rectData.right = this.Width;
                    list.Add(rectData);
                }

                introducePaint(g, currentData, myColor, TextColor);
            }
            //释放资源
            //utils.disposeGraphics(g);
            //g.Dispose();
        }
Beispiel #4
0
        //private int getIndexFromList(int y)
        //{
        //    //throw new NotImplementedException();
        //    if (list.Count == 0)
        //    {
        //        return 0;
        //    }
        //    return (int)(y * 1.0f * list.Count / this.Height);
        //}


        /// <summary>
        /// 绘制操作
        /// </summary>
        /// <param name="e"></param>
        protected override void OnPaint(PaintEventArgs e)
        {
            //自己声明的Graphics
            Graphics g = e.Graphics;

            //绘制的质量设置
            g.CompositingQuality = CompositingQuality.HighQuality;
            g.InterpolationMode  = InterpolationMode.HighQualityBicubic;
            g.TextRenderingHint  = System.Drawing.Text.TextRenderingHint.AntiAlias;
            g.SmoothingMode      = SmoothingMode.HighQuality;
            //绘制的画笔和笔刷
            Pen   linePen   = new Pen(LineColor, StrokenWidth);
            Brush lineBrush = new SolidBrush(LineColor);
            Brush TextBrush = new SolidBrush(TextColor);
            Brush DataBrush = new SolidBrush(DataColor);
            Font  font_Text = new Font("Consolas", TextSize);
            Font  font_Data = new Font("Consolas", DataSize);

            //绘制背景
            if (BackGroundColor != null)
            {
                Brush     background = new SolidBrush(BackGroundColor);
                Rectangle rect       = new Rectangle(0, 0, this.Width, this.Height);
                g.FillRectangle(background, rect);
                background.Dispose();
            }


            DataModel mouseMoveModel = null;

            if (adapter != null)
            {
                adapter.setIndex(-1);
                DataModel        data     = null;
                AreaPositionRect rectData = null;
                while (adapter.next())
                {
                    data             = adapter.getItem();
                    rectData         = adapter.getPositionRect();
                    data.Area.left   = rectData.left;
                    data.Area.right  = rectData.right;
                    data.Area.top    = rectData.top - currentScrollY;
                    data.Area.bottom = rectData.bottom - currentScrollY;
                    ///这个写的挺合理的
                    ///子类自己的绘制操作
                    childPaint(g, data, linePen, lineBrush, TextBrush, DataBrush, font_Text, font_Data);
                    if (isVerticalShowData)
                    {
                        data.Area.right = this.Width;
                    }
                    //data.Area.right = this.Width;
                    if (data.Area.IsMouseIn)
                    {
                        mouseMoveModel = data;
                    }
                    //rectData.right = this.Width;
                    //list.Add(rectData);
                }
                //数据辅助类的绘制
                introducePaint(g, mouseMoveModel, LineColor, TextColor, TextSize);
            }

            //释放资源
            disposeResource(linePen, lineBrush, TextBrush, DataBrush, font_Text, font_Data);

            ///绘制ToolTip
            if (toolTip != null)
            {
                toolTip.OnRender(g, mouseMoveModel);
            }
            //utils.disposeGraphics(g);
            //g.Dispose();
        }