Re: бегущяя строка потребляет 100% CPU!!!(
От: Hike  
Дата: 18.12.07 16:18
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>сделал бегущюю строку,взял Panel ну и на нее кидаю label,которые потом двигаю label.Left,двигаю циклически, тоесть когда какой-то label ушел из поля видимости помещая его за тем, за которым он шел,проблема в том, что если добавляю более 20 таких label,строка начинает потреблять 100% CPU, так вот не могу понять из-за чего такое может быть ?!( подскажитеЮ если кто знает, наверняка же кто нибудь писал бегущюю строку !


Проблемв в том что ты изменяешь свойство, а свойство — это вызов метода, который делает много работы.
Я бы вообще отказался от Label, и просто рисовал бы на контроле.

Что тебе мешает создать свой контрол, примерно вот так. Это вариант будет просто летать.

public class Foo : System.Windows.Forms.Control
        {
            protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
            {
                e.Graphics.DrawString("foo", ..., x, y);

                base.OnPaint(e);
            }
        }


не забудь добавить перерисовку по таймеру (ивалидэйт), чтобы двигались твои бегущие строки.
Используй таймер из винформс.
... << RSDN@Home 1.2.0 alpha rev. 786>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.