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


Автор: vponomarov 22.3.2008, 22:08
Заранее предупреждаю, что перерыл весь форум - ни один совет не помог smile 
Подскажите пожалуйста как сделать прозрачный фон у кнопки.
Собственно идея сделать кнопку произвольной формы.
Переопределил перерисовку, задал использовать прозрачный фон. В общем сделал все как советовали на форуме.
Ничего не помогает - все равно остается черная окантовка по форме кнопки smile 
мой класс:
Код

public class VistaButton : System.Windows.Forms.Button
{
public VistaButton()
        {
            InitializeComponent();

            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.ResizeRedraw, true);
            this.SetStyle(ControlStyles.Selectable, true);
            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            this.SetStyle(ControlStyles.UserPaint, true);
            this.BackColor =Color.FromArgb(0, Color.Transparent);
        }
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ExStyle |= 0x20;
                return cp;
            }
        }

        protected override void OnPaintBackground(PaintEventArgs pevent)
        {
            //Don't allow the background to paint 
        }
}


Помогите разобраться, плиз! smile 

Автор: vponomarov 23.3.2008, 00:56
всем спасибо за помощь smile 
кому интересно, проблема решается следующим образом:
Код

this.SetStyle(ControlStyles.Opaque, false);

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