Цвет фона не изменяется в круглом приложении
Я играю с визуальными элементами управления и цветами в простой программе изменения цвета фона, которую я написал. Я также хотел включить круглое окно приложения, которое я сделал, создав растровое изображение сплошного круга, окруженного черным, и сделав черный прозрачным. Теперь мой фоновый цвет не зацикливается. Может кто-нибудь сказать мне, как это исправить. Я включу мой код на случай, если это поможет, но я думаю, что это проблема свойств формы. Спасибо за любую помощь!
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Point mouse_offset;
public int c;
private void button1_Click(object sender, EventArgs e)
{
using (SpeechSynthesizer synth = new System.Speech.Synthesis.SpeechSynthesizer())
{
synth.Speak("This is a test of the emergency see sharp broadcasting network!");
synth.Speak("The man to the left is actually trying to dance without graphics capabilities");
}
while (Visible)
{
using (SpeechSynthesizer synth = new System.Speech.Synthesis.SpeechSynthesizer())
{
synth.Speak("Flash dance commencing in three. two. one.");
}
while (Visible)
{
for (int c = 0; c < 255 && Visible; c++)
{
this.BackColor = Color.FromArgb(c, 255 - c, c);
Application.DoEvents();
//slow();
}
for (int c = 255; c > 0 && Visible; c--)
{
this.BackColor = Color.FromArgb(c, 255 - c, c);
Application.DoEvents();
//slow();
}
}
}
}
public static void slow()
{
System.Threading.Thread.Sleep(3);
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
mouse_offset = new Point(-e.X, -e.Y);
}
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouse_offset.X, mouse_offset.Y);
Location = mousePos;
}
}
}
}
1 ответ
Решение
Каждый раз, когда вы изменили внешний вид компонента и хотите отобразить это изменение, звоните
myComponent.Invalidate();
Это заставляет компонент перерисовать себя. Теперь, когда вы там, есть несколько способов оптимизировать перерисовки, но я думаю, что вышесказанное должно помочь вам начать.