Měnová kalkulačka

C# .NET Formuláře WPF Měnová kalkulačka

Unicorn College ONEbit hosting Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V tomto video-tutoriálu bude názorně předveden postup, jak ve WPF C# naprogramovat měnovou kalkulačku převádějící koruny na eura a obráceně podle aktuálního měnového kurzu, který si program automaticky stáhne z webových stránek České Národní Banky.

Začátky jednotlivých částí:
00:03 - Založení WPF projektu
00:18 - Design (XAML)
06:35 - Kód pro převod měny pomocí tlačítek
09:00 - Ošetření vyjímek (blbuvzdornost)
10:53 - Výpočet v reálném čase (zrušení tlačítek)
11:54 - Ošetření zacyklení
15:15 - Stahování aktuálního kurzu z internetu
21:38 - Krokování kódu stahujícího kurzy
22:11 - Závěr


 

Stáhnout

Staženo 676x (56.16 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

 

Článek pro vás napsal Petr
Avatar
Jak se ti líbí článek?
21 hlasů
Ing. Petr Voborník, Ph.D. se specializuje na .NET C# technologie a vyučuje programování na Univerzitě Hradec Králové a na střední škole Podorlické vzdělávací centrum.
Aktivity (2)

 

 

Komentáře
Zobrazit starší komentáře (11)

Avatar
beibovaneki
Redaktor
Avatar
beibovaneki:25.12.2014 13:20

Díky. Musel jsem tam dát s = s.Replace(',', '.'). Tím poměrem to sice nebylo, ale za to ti taky děkuju.

 
Odpovědět 25.12.2014 13:20
Avatar
bem.jiri12
Člen
Avatar
bem.jiri12:3.6.2015 11:35

pěkné a velmi naučné videjko jako vždy, děkuji moc. A chci se zeptat proč jsou použité dva gridy? Resp. ten původní automaticky vygenerovaný WPFkem nikde nepoužíváš, pouze jsi přes něj roztáhl další grid. Něják sem nepochopil jestli to má nějaký důvod a účel?

 
Odpovědět 3.6.2015 11:35
Avatar
Petr
Redaktor
Avatar
Odpovídá na bem.jiri12
Petr:3.6.2015 12:35

Samozřejmě by bylo možné použít rovnou i hlavní grid okna, ovšem ten má výsadní postavení jako jeho hlavního kontejneru (Content nikoli Children), který je vždy právě jeden. Kdybych jej později chtěl ještě něčím okolo doplnit, osamostatnit do komponenty, posunout třeba jen do rohu okna, transformovat či animovat nebo odstranit to tak by s tím byl problém. Proto jsem vše umístil do samostatného gridu, aby případné další úpravy, byť třeba ani žádné neplánuji, neznamenaly, že kvůli tomu budu tento grid nějak dále dělit a činit další obsah závislý na tom stávajícím.

 
Odpovědět 3.6.2015 12:35
Avatar
Tomáš Kr
Člen
Avatar
Tomáš Kr:2.3.2017 16:49

Zdravím pánové, hraju si s touto kalkulačkou a chtěl jsem funkci stahování kurzivního lístku implementovat do své aplikace. Jenže jsem narazil na to, že po spuštění mi program spadne na tom, že se nelze připojit k serveru. Přitom když se dívám přes wireshark, tak si spolu aplikace a cnb server popovídá. Jenže to je vše,spustím alikaci a vyskočí neošetřená chyba (Vyvolaná výjimka: System.Net.We­bException v System.dll, Ke vzdálenému serveru se nelze připojit). Testoval jsem to jak doma na PC, tak v práci na dvou PC a nic. Nesetkal se s tím někdo?

 
Odpovědět 2.3.2017 16:49
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Tomáš Kr
Petr Čech:2.3.2017 16:56

Postni to sem jako téma na fórum. A připoj k tomu kód, kterým to provádíš.

Odpovědět 2.3.2017 16:56
Why so serious? -Joker
Avatar
Tomáš Kr
Člen
Avatar
Odpovídá na Petr Čech
Tomáš Kr:3.3.2017 8:18

No je to kod, který jsem si stáhnul v tomto článku pod videem :-) Myslel jsem, že jen blbě vidím a mám ve svém kodu překlep, ale stáhnul jsem tuto kalkulačku a dělá to stejné. Dík, postnu.

 
Odpovědět 3.3.2017 8:18
Avatar
I am not a programmer:7. května 18:48

Máš tady práci s metodami TextBoxu, tak se ptám tu. Jak se jmenuje metoda po stisknutí Enter? Zkoušel jsem vážně snad všechno, co obsahovalo Enter a pořád nic :-(.

Odpovědět 7. května 18:48
Člověk má ve zdrojáku jedno znaménko špatně. Vidí něco, mělo ho to napadnout. Něco si zapíše a teprv si to pamatuje.
Avatar
Petr
Redaktor
Avatar
Odpovídá na I am not a programmer
Petr:8. května 9:40

Události obsahující "Enter" znamenají většinou "vstup", např. Enter (editor získá focus, čili klikne se na něj nebo se na něj doskáče tabem), MouseEnter (myš najede nad prvek), DragEnter (táhne se myší nějaký prvek nad tímto textboxem) atd. Oproti tomu jsou tu pak události "Leave", které znamenají pravý opak, čili že se z textboxu "odešlo".
Pokud chceš detekovat stisk Enteru, tak lze použít KeyDown, KeyUp nebo KeyPress (klávesa stisknuta dolů, stisknutá klávesa uvolněna, klávesa stisknuta kompletně, tj. zmáčknuta a uvolněna). Tyto události pak volají metody, jež mají ve vstupním parametru "e" vlastnost (KeyCode), z níž lze určit, která klávesa byla stisknuta. Je to výčet Keys, přičemž Enter se zde jmenuje Return, takže stisk enteru se určí takto:
if (e.KeyCode == Keys.Return) ...;

 
Odpovědět 8. května 9:40
Avatar
Petr
Redaktor
Avatar
Odpovídá na Petr
Petr:8. května 9:47

Ta má předchozí odpověď platila pro Windows Forms. Ve WPF je to ale podobné, jen tam jsou pouze události KeyDown a KeyUp, ta vlastnost se jmenuje Key a výčet je taky Key, takže tam je to pak takto:
if (e.Key == Key.Return) ...;

 
Odpovědět 8. května 9:47
Avatar
Odpovídá na Petr
I am not a programmer:8. května 10:54

Díky :-). Zkoušel jsem hledat, kde se dalo, našel jsem to jako if(e.Key == Key.Enter), ale to je asi celkem jedno :-).

Odpovědět 8. května 10:54
Člověk má ve zdrojáku jedno znaménko špatně. Vidí něco, mělo ho to napadnout. Něco si zapíše a teprv si to pamatuje.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 21. Zobrazit vše