| Цитата | | Подскажиете простой способ как создать бегущую строку. |
- Про это, я тебе сейчас расскажу:
| Код | 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 переменные в нее. |
А про это я не догнал. Какое событие? |