Wątek przeniesiony 2015-01-24 01:41 z C# i .NET przez somekind.

Aplikacja okienkowa (windows form)

0

Zrobiłem program rozwiązujący prosty układ równań. Został stworzony jako Console Application. Teraz chciałbym, aby "przekonwertować" to na aplikację okienkową. Zamiast wprowadzania zmiennych wpisywać się je ma do textbox'a. X i Y obliczać będzie po naciśnięciu buttona.

0

A w czym problem, że tak zapytam ?

0

Nie chcę mieć konsolowej aplikacji.

0

Ale w czym problem ?
Nie wiesz jak utworzyć projekt w WF ? nie wiesz jak pobrać wartość z textbox-a ? Czy chcesz aby ktoś to Tobie przepisał na WF ?

0

Pokażę Ci jak wyobrażam sobie to i jak jest obecnie

0

No i wygląda zajebiście, więc w czym problem ? że jak klikasz na Oblicz nic się nie dzieje ?

0

No dokładnie. A wyobrażenie nie jest gotowe. Tylko wizualna strona.

0

Pokaż kod, skąd mamy wiedzieć co jest nie tak?

1

Klikasz w Visual studio dwa razy na "Oblicz" utworzy Tobie metodę w pliku cs. Musisz pobrać dane z TextBoxa. Zrobić konwersje z typu String do Double i dalej jak w Twoim programie. Jedyny mankament, że nie możesz użyć już swojej klasy ponieważ zawiera ona logikę "biznesowa" oraz warstwę prezentacji. Dlatego musisz od nowa zrobić obliczenia w ramach projektu WF.

0

Zrobiłem kod, jednak wszystkie zmienny pokazuje jako błąd: The name 'a' does not exist in the current context.

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


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

        private void button1_Click(object sender, EventArgs e)
        {
            double a = double.Parse(aTextBox.Text);
            double b = double.Parse(bTextBox.Text);
            double c = double.Parse(cTextBox.Text);
            double n = double.Parse(nTextBox.Text);
            double m = double.Parse(mTextBox.Text);
            double k = double.Parse(kTextBox.Text);
            double w, y, x, wynikx, wyniky;
            w = wspolczynnik();
            x = wspolczynnik_x();
            y = wspolczynnik_y();
            if (w == 0 && x == 0 && y == 0)
            {
                label1.Text = "Układ nieoznaczony. Nieskończenie wiele rozwiązań.";
            }
            else if (w == 0)
            {
                label1.Text = "Brak rozwiązania. Układ sprzeczny";
            }
            else
            {
                wynikx = x / w;
                wyniky = y / w;
                label1.Text = "X wynosi: " + wynikx;
                label2.Text = "Y wynosi: " + wyniky;

            }
        }
        public double wspolczynnik()
        {
            return (b * n) - (a * m);
        }
        public double wspolczynnik_x()
        {
            return (b * k) - (c * m);
        }
        public double wspolczynnik_y()
        {
            return (c * n) - (a * k);
        }
        public double wynik_x()
        {
            return x / w;
        }
        public double wynik_y()
        {
            return y / w;
        
        }
    
    }
}

        
    


        
    

 
0

Zmienne które deklarujesz w jednej metodzie są widoczne tylko w niej, żadna inna metoda nie ma do nich dostępu.
Musisz te zmienne przekazać do innej metody jako parametry, czyli:

 public double wspolczynnik(double b, double n, double a, double m)
        {
            return (b * n) - (a * m);
        }
0

Dzięki, tylko teraz wyskakuje błąd No overload for method 'wspolczynnik' takes 0 arguments przy

 
w = wspolczynnik();
1

Skąd ty się urwałeś? Przeczytaj jakiś kurs.

w = wspolczynnik(b,n,a,m);

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