Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Бегущая строка


Автор: PashaSem 8.1.2007, 18:49
Привет!
Подскажиете простой способ как создать бегущую строку.
И по событию добовлять string переменные в нее.

Спасибо! 

Автор: DarkDragon 9.1.2007, 02:04
Цитата
Подскажиете простой способ как создать бегущую строку.
 - Про это, я тебе сейчас расскажу:
Код

    public class RunLabel : Control
    {
        private Timer timer;

        public RunLabel()
        {
            timer = new Timer();
            timer.Interval = 10; // Установка в 0.010 - сек.
            timer.Tick += new EventHandler(timer_Tick);
            sx = 0;
            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
        }

        void timer_Tick(object sender, EventArgs e)
        {
            using (Graphics g = this.CreateGraphics())
            {
                sx += 2;
                if (sx >= this.Width) sx = 0 - (int)g.MeasureString(Text, Font).Width;
            }
            this.Refresh();
        }

        private int sx;

        public bool Running
        {
            get { return timer.Enabled; }
            set { timer.Enabled = value; }
        }

        public int StartX
        {
            get { return sx; }
            set { sx = value; this.Refresh(); }
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), (float)sx, 0);
            base.OnPaint (e);
        }
    }

Пример конечно не идеальный, но за то с основной мыслью.

Используем:
Код

        public Form1() // Конструктор
        {
            InitializeComponent();
            RunLabel rl = new RunLabel();
            rl.Text = "Hello World"; // Даем чему бежать
            rl.Dock = DockStyle.Fill; // На всю форму.
            this.Controls.Add(rl); // Добавляем контрол в форму
            rl.Running = true; // Врубаем ноги. И по-бе-жа-л
        }


Цитата(PashaSem @  8.1.2007,  18:49 Найти цитируемый пост)
И по событию добовлять string переменные в нее.

А про это я не догнал. Какое событие?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)