Banaly problem z while i ConsoleKeyInfo

2011-09-30 21:12
0

Witam,mam banalny problem,otóż kiedy zostanie wcisnięty klawisz inny niż UpArrow i Downarrow pętla zostanie przerwana ja sobie wymyśliłem to tak ale nie działa więc proszę o pomoc:

 int X = 0;
        ConsoleKeyInfo W;
        while (W.Key!=ConsoleKey.UpArrow&&W.Key!=ConsoleKey.DownArrow)
        {
            W = Console.ReadKey();
            if (W.Key == ConsoleKey.UpArrow)//Wpisywanie wartości do walut
            {
                X--;
                if (X < 0)
                {
                    Console.SetCursorPosition(3, 4);
                    X = 3;
                }
                Console.SetCursorPosition(4, X);

            }
            if (W.Key == ConsoleKey.DownArrow)
            {
                X++;
                if (X > 3)
                {
                    Console.SetCursorPosition(4, 0);
                    X = 0;
                }
                    Console.SetCursorPosition(4, X);

            }

        }
        }
}

Proszę o pomoc
Pozdrawiam
Marek

edytowany 1x, ostatnio: madmike, 2011-09-30 22:20

Pozostało 580 znaków

2011-09-30 21:19
0

Tzn. co dokładnie nie działa? Może lepiej zrób pętlę do-while, gdzie w pierwszym do dasz W = Console.ReadKey(); i potem resztę, jeżeli będzie to co potrzeba przerywasz, jeżeli nie kontynuujesz i tak do us***** śmierci :)


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
edytowany 1x, ostatnio: xeo545x39, 2011-09-30 21:20

Pozostało 580 znaków

2011-09-30 21:22
0

Świetny pomyśł z do-while ale teraz poradziłem sobie w bardziej chytry pomysł ( MUAHAHAHAHAHAA )

ConsoleKeyInfo W;
            W = Console.ReadKey();
            if (W.Key == ConsoleKey.UpArrow)//Wpisywanie wartości do walut)w górę
            {
                X--;
                if (X < 0)
                {
                    Console.SetCursorPosition(3, 4);
                    X = 3;
                }
                Console.SetCursorPosition(4, X);
           }
            if (W.Key == ConsoleKey.DownArrow) //w dół
            {
                X++;
                if (X > 3)
                {
                    Console.SetCursorPosition(4, 0);
                    X = 0;
                }
                Console.SetCursorPosition(4, X);
            }
            if (W.Key==ConsoleKey.Enter)
            {
                break;
            } 

oczywiśnie nie mogę zmienić na dowolny klawisz ale mi enter potrzebny bo tak program ma działać ;)
Pozdrawiam

Ale teraz mam inny prooblem,kiedy wpisuję Convert.("ui tutaj zamiast mieć duuużo motod mam tylko Equals i costamEquals) dlaczego tak jest?
Pozdrawiam

Pozostało 580 znaków

2011-09-30 21:57
0

Niemożliwe. Convert jest klasą statyczną i jej wszystkie metody też. Popatrz no dokładnie :) Może wpisujesz Converter albo coś?


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał

Pozostało 580 znaków

2011-09-30 22:06
0

http://www.zapodaj.net/2274eeb01b25.jpg.html

Więcej ? :)

edytowany 2x, ostatnio: maroo123321, 2011-09-30 22:06

Pozostało 580 znaków

2011-09-30 22:14
ŁF

U mnie trochę więcej tego jest. Nie zdefiniowałeś sobie gdzieś klasy Convert niezawierającej metod statycznych?


edytowany 1x, ostatnio: ŁF, 2011-09-30 22:16

Pozostało 580 znaków

2011-09-30 22:22
0
 using System;
class MainClass
{
    static void wrl(string tekst)
    {
        Console.WriteLine(tekst);
    }
    static void Switch()
    {
        Options O = new Options();
        Convert C = new Convert();
        ConsoleKeyInfo S = Console.ReadKey();
        switch (S.KeyChar)
        {
            case '1':
                {
                    Console.Clear();
                    O.Value();
                    break;
                }

        }
    }

    public static void Main()
    {
        wrl("1.Przelicznik");
        wrl("2.Opcje");
        wrl("3.Zakończ");
        Switch();
    }
}

class Options
{
    static void wrl(string tekst)
    {
        Console.WriteLine(tekst);
    }

    public void Value()
    {
        double GBR, USD, EUR,SEK;
        wrl("SEK:");
        wrl("GBR:");
        wrl("USD:");
        wrl("EUR:");
        Console.SetCursorPosition(4, 0);
        int X = 0;
        #region gotowe
        while (true)
        {

            ConsoleKeyInfo W;
            W = Console.ReadKey();
            if (W.Key == ConsoleKey.UpArrow)//Wpisywanie wartości do walut)w górę
            {
                X--;
                if (X < 0)
                {
                    Console.SetCursorPosition(3, 4);
                    X = 3;
                }
                Console.SetCursorPosition(4, X);
           }
            if (W.Key == ConsoleKey.DownArrow) //w dół
            {
                X++;
                if (X > 3)
                {
                    Console.SetCursorPosition(4, 0);
                    X = 0;
                }
                Console.SetCursorPosition(4, X);
            }
            if (W.Key==ConsoleKey.Enter)
            {
                break;
            }

            #endregion

            switch (X)
            {
                case 0:
                    {
                       GBR = double.Parse(Console.ReadLine());
                        break;
                    }
                case 1:
                    {
                       USD= double.Parse(Console.ReadLine());
                        break;
                    }
                case 2:
                    {
                        EUR = double.Parse(Console.ReadLine());
                        break;
                    }
                case 3:
                    {
                        SEK = double.Parse(Console.ReadLine());
                        break;
                    }
            }

        }

        Console.ReadLine();
    }
}

class Convert
{

}

Tutaj jest cały kod.Interesujące jest to ,że kiedy wpisuję System.convert to mam wszystkie metody ( a zawsze wystarczyło samo cornvert )
Pozdr,
Marek

Pozostało 580 znaków

2011-09-30 22:26
0

Wywal tę pustą klasę Convert. Po co ją w ogóle zrobiłeś?


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2011-09-30 22:31
0

Ahhhhhhhhhhhhhh.... Rozwiązał Pan to ,dzięki bardzo :)
Pozdrawiam
Marek

(Aż chce mi się śmiać ,że jestem takim idiotą ;) )

Pozostało 580 znaków

2011-09-30 22:37
0

Nie ja, tylko ŁF w poście sprzed 22 minut.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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