Kad se u tvoj kalkulator unose decimalni brojevi, unose se u američkom formatu, a rezulat je u europskom formatu ako su postavke control panela na HR.
Pogledaj malo kako je to sređeno u windows kalkulatoru, ovisno o postavkama u control panelu, a o tom sam pisao u onom postu o kulturama.
Tu ne bi smjelo biti dvojbi, po postavkama control panela treba biti i input i optput. Aplikacija se piše za korisnika, a ne programera.
Ovako sam ja riješio hot keyse, pa pogledaj malo
 private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (Control.ModifierKeys != Keys.Shift)
            {
                if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)
                {
                    SetTextFromKeyBoard(e.KeyValue);
                }
            }
            if (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.Enter)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.G || e.KeyCode == Keys.L)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.X)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
        }
Dakle, kad stisnem točno ove određene tipke, poziva mi ovaj metod, za ostale tipke ne radi ništa.
 private void SetTextFromKeyBoard(int keyValue)
        {
            textBox1.Select();
            switch (keyValue)
            {
                case 8:
                    ClearOneCharachter();
                    break;
                case 13:
                    AddNumbers();
                    break;
                case 46:
                    DeleteLine();
                    break;
                case 48:
                    NamjestiTekst("0");
                    break;
                case 49:
                    NamjestiTekst("1");
                    break;
                case 50:
                    NamjestiTekst("2");
                    break;
                case 51:
                    NamjestiTekst("3");
                    break;
                case 52:
                    NamjestiTekst("4");
                    break;
                case 53:
                    NamjestiTekst("5");
                    break;
                case 54:
                    NamjestiTekst("6");
                    break;
                case 55:
                    NamjestiTekst("7");
                    break;
                case 56:
                    NamjestiTekst("8");
                    break;
                case 57:
                    NamjestiTekst("9");
                    break;
                case 71:
                    GCD();
                    break;
                case 76:
                    LCM();
                    break;
                case 88:
                    ClearAll();
                    break;
                case 96:
                    NamjestiTekst("0");
                    break;
                case 97:
                    NamjestiTekst("1");
                    break;
                case 98:
                    NamjestiTekst("2");
                    break;
                case 99:
                    NamjestiTekst("3");
                    break;
                case 100:
                    NamjestiTekst("4");
                    break;
                case 101:
                    NamjestiTekst("5");
                    break;
                case 102:
                    NamjestiTekst("6");
                    break;
                case 103:
                    NamjestiTekst("7");
                    break;
                case 104:
                    NamjestiTekst("8");
                    break;
                case 105:
                    NamjestiTekst("9");
                    break;
            }
        }
A pozivani metod mi je ovaj:
  void NamjestiTekst(string unos)
        {
            if (kontrolnaVarijabla)
            {
                if (unos.CompareTo("0") != 0)
                {
                    textBox1.Text = unos;
                    textBox2.Text = unos;
                    textBox4.Text = "";
                    kontrolnaVarijabla = false;
                    kontrolnaVarijabla1 = true;
                }
            }
            else
            {
                textBox1.Text += unos;
                textBox2.Text += unos;
            }
        }
Na ovaj način dobiješ to da nema broja 05 kad ukucaš 05 nego 5, a tako možeš riješiti i da ne ukuca aritmetički operator ako ga prvog stisneš, što vidim da daje čudne rezultate.
 
     
    
    



