Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Vytvoření vlastní chybové hlášky v C#

Dobrý den,
potřeboval bych poradit s vytvořením vlastní chybové hlášky v programovacím jazyku C#. Jsem čerstvý začátečník, takže se učím, tak se omlouvám jestli dělám jasně viditelnou chybu.

private void button1_Click(object sender, EventArgs e)
        {
            double delkaa, vysledek;
            int zaokrouhleni;

            delkaa = Convert.ToDouble(textBox1.Text);
            zaokrouhleni = Convert.ToInt16(numericUpDown1.Value);
            vysledek= 4 * delkaa;
            vysledek= Math.Round(vysledek, zaokrouhleni);
            label1.Text = Convert.ToString(vysledek);

            if (textBox1.Text == "")      // <----O tento příkaz mi jde.
            {
                
                MessageBox.Show("Zadej číslo");
            }
            else label1.Text = Convert.ToString(vysledek);
        }

Jde o to, že potřebuji, aby při nezadání žádného čísla vyskočila hláška Zadej číslo. Visual Studio mi píše, že mám vše bez chyby, ale hláška nevyskakuje a program vždy spadne.

Předmět Autor Datum
Místo delkaa = Convert.ToDouble(textBox1.Text); použij if (!double.TryParse(textBox1.Text, out de…
Wikan 16.11.2014 19:28
Wikan
Asi jsem to napsal špatně. Prosím napsal bys mi celý zápis? private void button1_Click(object sende…
Ryba 16.11.2014 19:41
Ryba
Protože tam máš několik chyb. Od chyb syntaktických až po logické. Když ti to píše chybu tak je vžd…
Flash_Gordon 17.11.2014 08:17
Flash_Gordon
Díky moc. Nevšiml jsem si, že jsem tam nechal středník. Ale moc děkuji za pomoc. :) poslední
Ryba 17.11.2014 11:42
Ryba

Asi jsem to napsal špatně. Prosím napsal bys mi celý zápis?

private void button1_Click(object sender, EventArgs e)
        {
            double delkaa, vysledek;
            int zaokrouhleni;

            !double.TryParse(textBox1.Text, out delkaa);
            zaokrouhleni = Convert.ToInt16(numericUpDown1.Value);
            vysledek= 4 * delkaa;
            vysledek= Math.Round(vysledek, zaokrouhleni);
            label1.Text = Convert.ToString(vysledek);

            if (!double.TryParse(textBox1.Text, out delkaa));
            {
                MessageBox.Show("Zadej číslo");
                return;
            }
        }

Píše mi to chybu

Protože tam máš několik chyb.
Od chyb syntaktických až po logické.

Když ti to píše chybu tak je vždy základem tu chybu sem zkopírovat!

Co asi stojí nejvíc za zmínku je středník za podmínkou if:

 if (!double.TryParse(textBox1.Text, out delkaa)); <----  no tohle tam Wikan přece nemá !
            {
                MessageBox.Show("Zadej číslo");
                return;
            }

Je dobré naučit se základní syntaxi a až potom přecházet na práci s grafikou.

Celý funkční příklad vypadá takhle:

            double delkaa, vysledek;
            int zaokrouhleni;
            
            if (!double.TryParse(textBox1.Text, out delkaa))
            {
                MessageBox.Show("Zadej číslo");
                textBox1.Focus();  //  Touhle "vychytávkou" zajistíš, že kurzor bude mít uživatel rovnou v nutném políčku
                return;
            }
            
            zaokrouhleni = Convert.ToInt16(numericUpDown1.Value);
            vysledek = 4 * delkaa;
            vysledek = Math.Round(vysledek, zaokrouhleni);
            label1.Text = Convert.ToString(vysledek);

Zpět do poradny Odpovědět na původní otázku Nahoru