Przeróbka kodu z dwóch textBoxów na jeden.

Przeróbka kodu z dwóch textBoxów na jeden.
K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Witam
Na początku chciałbym przeprosić za zbyt nie jasny temat.Mam problem z tym kodem.

Kopiuj
 textBox1.Text = textBox2.Text + " + " + textBox3.Text + " = " + Convert.ToString(Convert.ToInt32((Convert.ToInt32(textBox2.Text)) + (Convert.ToInt32(textBox3.Text))));      

Chciałbym aby można było wpisać (z klawiatury) równanie do textBoxa a po naciśnięciu klawisza "=" pojawił się wynik tego równania.
Mam nadzieje że wyraziłem się w miare jasno.Z góry dziękuje za pomoc.

edytowany 1x, ostatnio: kuba7528
Nomysz
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 6 lat
  • Postów:60
0
edytowany 1x, ostatnio: Nomysz
K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

No dobrze a jak zastosować to do tego kodu co mam.

0

No a przeczytałeś co ta metoda robi? Zastanowiłeś się co trzeba zrobić, żeby wyciągnąc te 2 liczby z textboxa?

Tak poza tym, to żeby to było uniwersalne, to musiałbyś użyć Odwrotnej Notacji Polskiej.

K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Pierwszy raz używam tej metody i nie wiem co robić.

0

Kluczowe pytanie, czy umiesz wykonać taki sam program bez pomocy w konsoli?

0

a wpisałeś moze w google "c# string.split examples"? próbowałeś ja wywołać z róznymi parametrami, kombinowałeś, eksperymentowałeś, sprawdzałeś testowałeś, czy czekasz na gotową odpowiedź?

PS. Powtórzę ponownie, jeśli zrobisz to za pomocą string.split, to będzie działało to tylko dla X + Y = Z. Nie zadziała dla X - Y = Z, anie dla Z - Y + T = Z. Jeśli chcesz, żeby to było uniwersalne, użyj Odwróconej Polskiej Notacji

T9
Za pomocą spilta da rade;)
Nomysz
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 6 lat
  • Postów:60
0
kuba7528 napisał(a):

No dobrze a jak zastosować to do tego kodu co mam.

W linku, znajduję się przykładowy kod, który jest bliski do rozwiązania Twojego problemu.

edytowany 1x, ostatnio: Nomysz
K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Mam tylko jeden textbox jak mam to wyciągnąć.Jako klawisz , znak ?

K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Trochę to trudne a nie jestem żółtodziobem bo podstawy kalkulatora i notatnika udało mi się sklicić.

T9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
  • Postów:329
0

Ale co ty konkretnie od A do Z chcesz zrobić?

FA
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
  • Postów:475
0
kuba7528 napisał(a):

Mam tylko jeden textbox jak mam to wyciągnąć.Jako klawisz , znak ?

Kontrolka textbox ma event OnKeyPressed (czy jakos tak podobnie). Mozesz sie zaczepic w tym evencie i sprawdzac jaki klawisz jest nacisniety. Jesli jest to = to odpalasz jakas tam metode, ktora przyjmuje stringa (zakladajac, ze jest w poprawnym formacie rownania) i zwraca jakas liczbe (wynik tego /powiedzmy/ rownania). Parametr, ktory wysylasz do tej metody mozesz wziac z textBox.Text property.

Generalnie o ile dobrze Cie zrozumialem i chcesz zapisac rownanie w strinu mniej wiecj w takiej postaci: 5+5= to bedzie to działać, o ile sprytnie napiszesz metode parsujaca tego stringa. Radzilbym jednak zastosowac sie do przedmowcy, zapoznac sie i skorzystac z ONP ;)

kuba7528 napisał(a):

nie jestem żółtodziobem bo podstawy kalkulatora i notatnika udało mi się sklicić.

Szczerze watpie, skoro zadajesz pytania typu:

kuba7528 napisał(a):

Mam tylko jeden textbox jak mam to wyciągnąć.Jako klawisz , znak ?

edytowany 2x, ostatnio: FakeAccount
K7
W C++,C# siedzie około 2-3 lat zajmuje się tym amatorsko polega to na tym że zbieram kod neta i prubuje coś stworzyć do własnego użytku .Podstawy znam inaczej nie tworzyłbym takiego wątku na forum.
spartanPAGE
2, 3 lata i wciąż żółtodziób? To jakaś klątwa
K7
Pisze przecież że to amatorszczyzna , ciężko znaleŹć konkretną no i najlepiej polską pomoc dlatego szukam jakiś wskazówek , prosze nie pisz mi żebym poszukał sobie innego hobby.
K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Chce aby po napisaniu działania w textbox np "2+4=" z klawiatury i po naciśnięciu "=" pojawił się wynik wraz z tym działaniem.Chyba w miare jasno się wyraziłem.Dodam jeszcze że w Visual Studio nie ma takie zdarzenia jak OnKeyPressed jest natomast KeyPress.To to samo ?

edytowany 1x, ostatnio: kuba7528
T9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
  • Postów:329
0

Nie w visual studio tylko w fraemewoku którego stosujesz czyli albo winforms albo wpf. Po naciśnieciu gdy ostatnim elementem równania jest "=".
Jak to pierwsze, to musisz napisać on
musisz poprawić rozmiar liter :)

Kopiuj
 this.textbox.TextChanged += NameChanged;

 public void NameChanged(object sender, RoutedEventArgs e)
        {
            if((sender as textBox).text[sender as textBox).text.lenght-1] == '=') 
            {
               string wynik =  Policz();
               (sender as textBox).text +=  wynik;
             } 
        }
// a jak druga to to 
private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Delete)
    {
       string wynik =  Policz();
               TextBox.text +=  wynik;
    }
}
edytowany 2x, ostatnio: topik92
K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Mam problem z tym

Kopiuj
 this.TextBox.TextChanged += NameChanged;
 
 public void NameChanged(object sender, RoutedEventArgs e)
        {
            if((sender as TextBox).text[sender as TextBox).text.Lenght-1] == '=') 
            {
               string wynik =  Policz();
               (sender as TextBox).Text +=  wynik;
             } 
        }

a do tego

Kopiuj
  private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                string wynik = Policz();
                textBox1.Text += wynik;
            }
       
            
        }

        

musiałem wstawić to

Kopiuj
  private string Policz()
        {
            throw new NotImplementedException();
        }

Wiem że to jest łopatologicznie napisane ale chciałbym wiedzieć czy dobrze robie,
bez tego stringa(moge się mylić bo to pewnie jest klasa) w ogóle nie kompiluje programu.

edytowany 2x, ostatnio: kuba7528
T9
No to jest dość oczywiste że bez tego się nie skompiluje... Tam powinieneś wstawi.. NAPISAĆ metodę co policzy Ci wynik
K7
a czyli dobrze robie sorry ale ja się tego ucze,jeszcze wracając do tego pierwszego to co ja mam tam poprawić bo wielkie litery T w textboxach nic nie dają , moim zdaniem coś musi być jeszcze do poprawki ale nie wiem co.
T9
Gdyby mi ktosie nie przerywały co 5 min to bym Ci nazwy spójnie podał, nie ważne. VS powinno Ci wszystko pod kreślić. np. ucięty nawias.To się uczysz czy masz 2 lata doświadczenia?
AL
  • Rejestracja:ponad 11 lat
  • Ostatnio:15 dni
  • Postów:308
0

jakie to będą działania, czy coś w stylu:

Kopiuj
6 + 89 * 2 - 4 / 2 =

?

Ja bym zrobił tak:

  1. szukasz * i /
  2. jesli znajdzie, szukasz liczb przed i po (do kolejnej cyfry lub konca [while char jest liczba (laczysz w string a pozniej int.tryparse), index + / -])
  3. wykonujesz dzialania: 6 + 89 * 2 - 4 / 2 -> 6 + 178 - 2
  4. to samo, tylko dla + - i wykonujesz dzialania
edytowany 1x, ostatnio: .Al
T9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
  • Postów:329
0

Mi to się kompiluje

Kopiuj
        TextBox textbox = new TextBox();
        void shit()
    {
        textbox.TextChanged += this.NameChanged;
    }
 
 public void NameChanged(object sender, RoutedEventArgs e)
        {
            if((sender as TextBox).Text[(sender as TextBox).Text.Length-1] == '=') 
            {
               string wynik =  Policz();
               (sender as TextBox).Text +=  wynik;
             } 
        } 

@up kolega nie wie co mu nie działa ;) ale można zrobić to albo odwrócona notacją polską albo

Kopiuj
        string oblicz(string równanie)
        {
            Kontroladanych1();
           return oblicz2(spilt(równanie)).ToString();
        }
        double oblicz2(List<string> równanie)
    {
        kontrolaDanych2();
        znajdzIwykonajNawias(równanie);
        wykonajFunkcje(równanie); // sin cos ect.
        mnózDziel(równanie);
        return sumujOdejmuj(równanie); // return double
        /*kazdy stopień kaskady "skleja" liczby i usuwa operatory z listy {2,+,2 ,*,2,+,3}=>{2,+,4,+,3} */
    }
       void znajdzIwykonajNawias(List<string> równanie)
        {
            //jesli znaleziono usuń nawiasy z listy i:
            oblicz2(List<string> tresc_miedzy_nawasami); // zamiast rekurecji można pętli uzyc
// wstawić wynik  jako string w liscie "w miejsce całego nawiasu"
        }
      void  wykonajFukcje() //sin[2+3];
        {
            // odnajduje wszystkie fukcje w liscie, "zawartośc" nawiasu rozwiązuje rekurencyjnie np sin[2+3] => wynik=oblicz2({2,+,3});
            // a potem w pisać w liscie w miejsce "sin[2+3]" <= sin(wynik).ToString();
        } 
edytowany 3x, ostatnio: topik92
K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Do tego mam pewnie utworzyć klase ale co w tej klasie napisać

Kopiuj
 RoutedEventArgs
K7
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:87
0

Chyba porywam się z motyką na słońce bo nie moge sobie poradzić z kodem kolegi topik92.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)