首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# winform 定时绘制图 出现有关问题

2012-04-20 
C# winform定时绘制图 出现问题。目的是每隔一段时间,从新绘制下,怎么一直包参数错误, OnPaint里面绘制没有

C# winform 定时绘制图 出现问题。
目的是每隔一段时间,从新绘制下,怎么一直包参数错误, OnPaint里面绘制没有问题,我用定时绘制,怎么包错。 谢谢大虾帮忙看下。 要做的效果就是移动文字和图片(所以继承了PictureBox,其实用Panle,Control都可以的,)。这里先做个文字的测试。 因为要移动的大小可是0.2,这样。开始我只是改变控件的位置,可是那个最小的是1,在移动的时候一点不连续,明显能看出的。 所以自己绘制一下。

代码如下:

C# code
public class DrawStringControl : PictureBox    {        float moveSize = 0.5F;        float CurrentPost = -10F;        private Graphics g;//        public DrawStringControl()        {            timer1 = new Timer();            timer1.Interval = Interval;            timer1.Tick +=new EventHandler(timer1_Tick);        }        private Timer timer1;        protected override void OnPaint(PaintEventArgs pe)        {            base.OnPaint(pe);            g = pe.Graphics;            PointF p = new PointF(CurrentPost,0F);//            g.DrawString(Value, new Font("宋体", 15), Brushes.Red, p);        }        /// <summary>        /// 开始滚动        /// </summary>        public void Start()        {                       timer1.Start();        }        public void Stop()        {            timer1.Stop();        }             /// <summary>        /// 向上移动的大小        /// </summary>        public float MoveSize        {            get { return moveSize; }            set { moveSize = value; }        }        private int interval = 10;        /// <summary>        /// 多长时间移动一次        /// </summary>        public int Interval        {            get { return interval; }            set { interval = value; }        }        private void timer1_Tick(object sender, EventArgs e)        {            CurrentPost -= moveSize;                    PointF p = new PointF(CurrentPost, 0F);//左移动            g.DrawString(Value, new Font("宋体", 12), Brushes.Red, p);        }        private string value;       /// <summary>       /// 要画的文本       /// </summary>        public string Value        {            get { return this.value; }            set            {                this.value = value;            }        }           }


[解决办法]
Control.Invalidate(.);。。。。

热点排行