标题:单行屏幕怎么实现内容上下滚动
只看楼主
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
结帖率:86.21%
已结贴  问题点数:22 回复次数:1 
单行屏幕怎么实现内容上下滚动
经常路过房产中介,看到他们门的上边放着一个单行显示的显示屏,不停的上下滚动着,怎么实现的呀?
自己简单做了个,主要是画一个矩形,再定时移动它的Y坐标。不过,感觉貌似这样隐隐存在隐患:如果行数特别多,就需要每次的定量移动特别的精确,不然多了就会不整齐了。于是,想到另外一个方法:把要显示的字符串内容按屏幕宽度拆分成固定长度的字符串数组,然后依次的来显示在单行的显示屏上。可又不知道如何来按固定长度拆分str?请教高手支招!谢谢!
程序代码:
using System;
using System.Collections.Generic;
using using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 单行显示屏
{
    public partial class Form1 : Form
    {
        string str = "LED可以给国家和使用者节省大量电能,给承做方节省大量工时。LED应用技术的发展,给竞争激烈的广告业增添了新的活力。其独有的、不同的发光形势、被广泛的应用在广告产品的制作领域。不同规格的LED有着不同的发光角度和不同的亮度。";

        PointF pf = new PointF(10, 2);
        Font f = new Font("宋体", 15);

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.timer1.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.timer1.Stop();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Brush brush = Brushes.Red;
            Graphics g = pictureBox1.CreateGraphics();
            g.Clear(Color.White);

            SizeF s = new SizeF();
            s = g.MeasureString(str, f,524);
            RectangleF k = new RectangleF(pf, s);
            g.DrawString(str, f, brush, k);

            if (pf.Y >= pictureBox1.Height - s.Height)
            {
               
                pf = new PointF(pf.X, pf.Y - (float)22.8);
               
            }
            else
            {
                pf = new PointF(5, 2);
            }
        }
    }
}
单行显示屏.rar (33.62 KB)

搜索更多相关主题的帖子: 屏幕 单行 滚动 
2010-11-24 11:36
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:22 
            string[] stri=new string[10];//假设字符串数组的维数是10
            int length = 15;             //假设固定长度是15
            for (int i = 0; i < str.Length / length; i++)  //计算需要的字符串数组的维数
            {
                stri[i] = str.Substring(0+i*length, length);//每次分配固定长度的字符到字符串数组
                MessageBox.Show(stri[i]);                   //实验输出一下看看
            }
2010-11-24 12:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-326723-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.114594 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved