Odczytanie danych z texbox`a i wykorzystanie ich we wzorze.

0

Chce odczytywać dane z texbox`a i dodać je do gotowego wzoru. Problem jest w tym, że jestem kompletnie zielony z programowania i nie mam pojęcia jak to się robi. Jakieś poradniki, kursy lub propozycje od czego mam zacząć?

Texbox`y nazwałem po prostu nazwami co pokazują lecz gdy wpisuje waga.Text nie odczytuje żadnych danych. :/

title

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

          
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

            if (plec = "Kobieta")
            {
                ((waga.Text + 9, 99) * (wzrost.Text * 6, 25) - (wiek.Text * 4, 92) - 161);
            }
            else
            { 
                ((waga.Text + 9, 99) * (wzrost.Text * 6, 25) - (wiek.Text * 4, 92) + 5);
            }

           

        }
    }
}

1

Przede wszystkim w c# zmienne porównujemy za pomocą podwójnego znaku = więc powinno być tak: if (plec == "Kobieta")

Textbox-y przechowują tekst, musisz więc zamienić to co wpisał użytkownik na typ liczbowy (np. int, float). Jako że dane mogą mieć wartości dziesiętne, to float będzie tutaj odpowiedni. Chyba najprostszym rozwiązaniem będzie coś takiego:

float waga_c;

if( ! float.TryParse(waga.Text, out waga_c))
{
    //Tutaj przydało by się poinformować użytkownika że to co wpisał jest niepoprawne. 

    return;
}

//Tutaj dalej przetwarzasz zmienne

Druga sprawa to brak przypisania wyniku obliczeń do jakiejś zmiennej.

((waga.Text + 9, 99) * (wzrost.Text * 6, 25) - (wiek.Text * 4, 92) - 161); // Twój kod

double wynik = ((waga_c + 9, 99f) * (wzrost_c * 6, 25f) - (wiek_c * 4, 92f) - 161); //Poprawne rozwiązanie

W przykładzie powyżej po liczbach z miejscami po przecinku dodałem 'f', dzięki czemu kompilator wie że chcemy użyć float-ów zamiast double.

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