Strona 1 z 1

Konwersja do i na odwrót

Napisane: sobota, 4 maja 2013, 16:49
przez techcode
Mam problem z połączeniem konwersji do czterech systemów. każdy if else testowałem osobno i dobrze konwertował z dec do bin, oct, hex jak i na odwrót.
Mam 4 pola TextBox ale nie mogę tego połączyć aby działało pod jednym przyciskiem.
Próbowałem swich case oraz try cach i nic.
O to kod:

Code: Zaznacz cały

 protected void Button1_Click(object sender, EventArgs e)
        {
            if ((TextBox1.Text =="0") && (TextBox2.Text =="0") && (TextBox3.Text =="0") && (TextBox4.Text =="0"))
            {
                Label6.Text = "Wykonaj konwersję!";
                TextBox1.Enabled = false;
                TextBox2.Enabled = false;
                TextBox3.Enabled = false;
                TextBox4.Enabled = false;
            }
           //#################  Blok konwersji w jedną stronę ######################
            try
            {
                int bin, hex, oct;
                    bin = int.Parse(TextBox1.Text);
                    TextBox4.Text = Convert.ToString(bin, 2);
                    hex = int.Parse(TextBox1.Text);
                    TextBox2.Text = Convert.ToString(hex, 16);
                    oct = int.Parse(TextBox1.Text);
                    TextBox3.Text = Convert.ToString(oct, 8);

            }
            catch (Exception)
            {
              
            }

            int bin, hex, oct;
            if (TextBox1.Text == "")
            {
                TextBox4.Text = "0";
                TextBox3.Text = "0";
                TextBox2.Text = "0";
                TextBox1.Text = "0";


            }
            else
            {
                bin = int.Parse(TextBox1.Text);
                TextBox4.Text = Convert.ToString(bin, 2);
                hex = int.Parse(TextBox1.Text);
                TextBox2.Text = Convert.ToString(hex, 16);
                oct = int.Parse(TextBox1.Text);
                TextBox3.Text = Convert.ToString(oct, 8);

            }

             //z bin na inne systemy
            string binhex, bindec, binoct;
            
            if (TextBox4.Text == "")
            {
                TextBox4.Text = "0";
                TextBox3.Text = "0";
                TextBox2.Text = "0";
                TextBox1.Text = "0";

            }
            else 
            {
                bindec = string.Copy(TextBox4.Text);
                TextBox1.Text = Convert.ToInt32(bindec, 2).ToString();
                binhex = string.Copy(TextBox4.Text);
                TextBox2.Text = Convert.ToString(Convert.ToInt32(TextBox4.Text, 2), 16);
                binoct = string.Copy(TextBox4.Text);
                TextBox3.Text = Convert.ToString(Convert.ToInt32(TextBox4.Text, 2), 8);
            }

            // z octal na inne systemy
            string octdec, octhex, octbin;

            if (TextBox3.Text == "")
            {
                
                TextBox3.Text = "0";
                TextBox4.Text = "0";
                TextBox2.Text = "0";
                TextBox1.Text = "0";

            }
            else
            {
                octdec = string.Copy(TextBox3.Text);
                TextBox1.Text = System.Convert.ToString(Convert.ToInt32(TextBox3.Text, 8), 10);
                octhex = string.Copy(TextBox3.Text);
                TextBox2.Text = System.Convert.ToString(Convert.ToInt32(TextBox3.Text, 8), 16);
                octbin = string.Copy(TextBox3.Text);
                TextBox4.Text = System.Convert.ToString(Convert.ToInt32(TextBox3.Text, 8), 2);
            }

            // z hex na inne systemy
            string hexdec, hexoct, hexbin;

            if (TextBox2.Text == "")
            {
                TextBox2.Text = "0";
                TextBox3.Text = "0";
                TextBox4.Text = "0";
                TextBox1.Text = "0";

            }
            else
            {
                hexdec = string.Copy(TextBox2.Text);
                TextBox1.Text = System.Convert.ToString(Convert.ToInt32(TextBox2.Text, 16), 10);
                hexoct = string.Copy(TextBox2.Text);
                TextBox3.Text = System.Convert.ToString(Convert.ToInt32(TextBox2.Text, 16), 8);
                hexbin = string.Copy(TextBox2.Text);
                TextBox4.Text = System.Convert.ToString(Convert.ToInt32(TextBox2.Text, 16), 2);
            }


          
        }



jak to połączyć aby z dowolnego pola konwertowało za pomocą jednego przycisku?

Re: Konwersja do i na odwrót

Napisane: niedziela, 5 maja 2013, 19:25
przez techcode
Szkoda, że po dwóch dniach nie można edytować by usunąć, bo już sobie poradziłem. Ale mam inne pytanie. Jeżeli mam pola TextBox ustawione na wyłączone, to jak uaktywnić klikając na textBox?
Np: Wykonałem zadanie i pola sa nieaktywne, chce ponownie dokonać obliczeń to klikam na textBox i ponownie są aktywne.
Jak to zrobić?

Re: Konwersja do i na odwrót

Napisane: niedziela, 5 maja 2013, 22:35
przez Morfidon
Jeśli chodzi Ci o przekazanie skupienia to skorzystaj z funkcji requestFocus():
http://docs.oracle.com/javase/7/docs/ap ... estFocus()

Re: Konwersja do i na odwrót

Napisane: poniedziałek, 6 maja 2013, 08:34
przez techcode
Ale link prowadzi do javy a mi chodzi w javascript lub w C#.

Re: Konwersja do i na odwrót

Napisane: poniedziałek, 6 maja 2013, 10:16
przez Morfidon
http://msdn.microsoft.com/en-us/library/ms743469.aspx
http://www.c-sharpcorner.com/uploadfile ... m-control/

tego typu rzeczy masz rozwiązane setki razy w google po wpisaniu prostej frazy. Jako programista musisz nauczyć się korzystać z wyszukiwarki.

Re: Konwersja do i na odwrót

Napisane: poniedziałek, 6 maja 2013, 16:28
przez techcode
Szanowny Panie, z wyszukiwarki to korzystać umiem, a co do focus hmm jakoś nie udaje mi się. Ponieważ poza textBox chce aby button1 uaktywnił mi się. Czyli klikam oblicz, nieaktywne pola i przycisk, gdy najadę myszką na jedno z czterech pól, to następuje aktywacja 4 pól i przycisku.

P.S. Jeżeli Pan ten post odebrał jako złośliwość, pisząc Per Pan, to przepraszam. natomiast przykłady dotyczą metody KeyPress, wiele przykładów widziałem a ja działam na wersji express Visual Studio for web i pod piorunem nie widzę zdarzeń KeyPress.