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


Автор: Laprado 17.12.2006, 19:26
Метод ниже не выходит smile Как сделать?

Код

public class OvLabel : System.Windows.Forms.Label
        {
            protected override void OnLoad(EventArgs e)
            {
                base.OnLoad(e);
                this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
                this.BackColor = Color.Transparent;
            }
        }

Автор: DarkDragon 17.12.2006, 19:44
Laprado, ты что?
Когда это у Label, появился вертуальный метод OnLoad? да и вообще у него нет Load - Event'са!

Попробуй так:
Код

public class OvLabel : System.Windows.Forms.Label
        {
            OvLabel()
            {
                this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
                this.BackColor = Color.Transparent;
            }
        }

Автор: Laprado 17.12.2006, 19:55
Класс заработал, но как к конкретному лабелу применить прозрачность?

Автор: DarkDragon 17.12.2006, 20:06
Код

label.BackColor = Color.Transparent


Но скажем любому контролу уже созданному на форме, нельзя привинтить SetStyle. Ну не совсем, можно используя API.
Если же ты это имеешь ввиду.

Автор: Laprado 17.12.2006, 20:17
Всеравно ничего не происходит smile Т.е. он фон становится прозрачный, но принимает цвет формы.
Объясню ситуацию, лабел находится на рисунке, и он (лабел) должен быть простым текстом, без обрамляющего его цвета.

Автор: DarkDragon 17.12.2006, 20:38
Надо чтобы твой рисунок был установлен на BackgroundImage, тогда все нисчяк будет.
Если рисунок маловат, то создай Panel (с размерами рисунка), и установи у него BackgroundImage, и уже в эту Panel, Добавишь Label, и все будет прозрачным, сам вот проверил.
К стати добавлять SetStyle (SupportTransparent.... не обязательно, можно в форме создать обыкновенный label, просто BackColor установить в Transparent

Автор: Laprado 17.12.2006, 20:58
DarkDragon, все получилось! Сколько же нюансов с этими формами smile С меня плюсег, как наберу 100 сообщений smile

Автор: DarkDragon 17.12.2006, 21:08
Цитата(Laprado @  17.12.2006,  20:58 Найти цитируемый пост)
Сколько же нюансов с этими формами

Удачи тебе с Form'ами smile 

Автор: ivashkanet 17.12.2006, 22:35
Цитата(Laprado @  17.12.2006,  19:58 Найти цитируемый пост)
С меня плюсег, как наберу 100 сообщений

Зачем ждать: трах-тибидох smile 

Автор: mr.DUDA 18.12.2006, 14:10
Может я поздновато вмешиваюсь, но SupportsTransparentBackColor юзается в паре с со стилем UserPaint.

Автор: DarkDragon 18.12.2006, 20:32
Цитата(ivashkanet @  17.12.2006,  22:35 Найти цитируемый пост)

Зачем ждать: трах-тибидох smile 

smile smile smile

Цитата(mr.DUDA @  18.12.2006,  14:10 Найти цитируемый пост)
SupportsTransparentBackColor

Тогда я так понимаю, что он добавляет поддержку заднего фона, при условии что пользователь сам будет обрабатывать графику контрола. 

Цитата(mr.DUDA @  18.12.2006,  14:10 Найти цитируемый пост)
Может я поздновато вмешиваюсь

Зато не надо будет писать SetStyle на готовые контролы (обезьяний труд делать smile ) smile

Автор: mr.DUDA 19.12.2006, 13:12
Цитата(DarkDragon @  18.12.2006,  19:32 Найти цитируемый пост)
Тогда я так понимаю, что он добавляет поддержку заднего фона, при условии что пользователь сам будет обрабатывать графику контрола. 

Да, при этом фон отрисовывается заранее (OnPaintBackground это делает), а юзер рисует на прозрачном графиксе (OnPaint, или обработчик Paint), который накладывается на фон.

Автор: st4lk3r0k 23.12.2006, 17:10
SupportsTransparentBackColor помойму вообще тока для формы нужно ставить smile т.к. в остальных случиях это нафиг не надо smile
ну... если тока с контролами особой формы...

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