Witam. Jestem początkujący jeśli chodzi o programowanie.
Chcę, aby moje okno wysuwało się płynnie z dołu ekranu przy tray'u. Sposób jaki na to wymyśliłem jest zapewne trochę prymitywny, ale o tym za chwilę.
Problem polega na tym, że gdy program ma wyświetlić formę i przesunąć ją, uwidacznia się tylko efekt końcowy. Nie widać jak forma się przesuwa, ale dopiero jak jest na miejscu. Próbowałem już zwiększyć opóźnienie, ale o dziwo to samo, tylko, że dłużej czekam na ten końcowy efekt. Jeśli jest taka możliwość to prosiłbym o wskazanie mi, co robię źle.
Kod poniżej:
public partial class AppForm : Form
{
int x, y, i;
public AppForm()
{
InitializeComponent();
}
private void Loc()
{
x = Screen.PrimaryScreen.Bounds.Width - this.Width;
y = Screen.PrimaryScreen.Bounds.Height - 30;
this.Location = new Point(x, y);
for (i = 0; i < 200; i++)
{
y = y - 1;
this.Location = new Point(x, y);
System.Threading.Thread.Sleep(2);
}
}
private void Wysuw(int czas)
{
//for (i = 0; i < 5; i++)
//{
// y = y - 40;
// this.Location = new Point(x, y);
// System.Threading.Thread.Sleep(czas);
//}
}
private void AppForm_Load(object sender, EventArgs e)
{
Loc();
}
private void button1_Click(object sender, EventArgs e)
{
this.Visible = false;
}
}
Wcześniej starałem się to wykonać tworząc do tego metodę, ale, gdy zobaczyłem ten problem pomyślałem, że warto zacząć od wykonania tego w inny sposób. Z góry dziękuję :)