Wątek przeniesiony 2018-05-03 18:57 z C# i .NET przez somekind.

Progressbar załadowanie do 100% otworzenie Form2

0

Witam.
Chciałbym aby progressbar który jest na Form1 po załadowaniu się do 100% otworzył Form2 a Form1 zamkną.
Bo coś źle zrobiłem
(Program Visual Studio)

public partial class Form1 : Form 
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            progressBar1.Increment(1);
            if (progressBar1.Value == 100);

            Form frm2 = new Form();

            frm2.Show();
  
        }

        private void progressBar1_Click(object sender, EventArgs e)
        {
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();
        }
    }
0

I co nie działa? Form1 się nie zamyka?

0

Progressbar nawet nie zdąży się załadowca a Form2 otwiera się bez końca i Form1 się też nie zamyka

2

Bo masz średnik na końcu if, więc utworzenie obiektu frm2 i wywołanie metody show() wykona się tak czy siak bez względu na warunek

0

To jak ten kod powinien wyglądać aby to działało?

1

Usuń średnik A utworzenie i pokazanie fr2 daj w klamerkach.

0
  1. tak, jak już koledzy napisali - średnik po ifie powoduje, że następująca po nim linia jest niezależna od samego warunku - czyli nieważne, czy progressbar ma wartość 100 czy jakąkolwiek inną, Form2 i tak zostanie utworzone,

  2. nie wiem, czy wkleiłeś cały kod, czy jedynie wybrane fragmenty, ale nie widzę dwóch rzeczy:

  • wprawdzie tworzysz Form2, ale nigdzie nie widzę zamknięcia/ukrycia Form1, więc raczej nie ma się co dziwić że pierwsze okienko nie znika
  • masz Timera, który co pewien czas jest wywoływany. W obsłudze jego wywołania masz tego "uszkodzonego" if'a z pkt. 1. Ale zwróć uwagę, że nigdzie w kodzie, który przesłałeś nie ma dezaktywacji tego timera po "zapełnieniu" progress bara. W związku z tym, po osiągnięciu wartości 100 przezpasek postępu, if (po dokonaniu wspomnianych poprawek) będzie za każdym razem sprawdzany jako true.

1 użytkowników online, w tym zalogowanych: 0, gości: 1