logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C# - wywołanie kliknięcia przycisku / obsługa klawiatury

Zachwiany 08 Gru 2014 01:45 2328 1
REKLAMA
  • #1 14202062
    Zachwiany
    Poziom 8  
    Posty: 6
    Witam, wczoraj zacząłem bawić się w C#, postanowiłem napisać na start prosty kalkulatorek, niestety problem pojawił się gdy chciałem rozszerzyć klikanie o obsługę klawiszy. Ogólnie moje przygody z programowaniem nie były zbyt bajkowe, kończyłem równie szybko jak zaczynałem.

    Ale do rzeczy, mam klasę kalkulator oraz klasę przycisku z obsługą klawiszy. Lecz nie potrafię w obsłudze klawiszy wywołać funkcji z klasy kalkulator, czytam i czytam i zero pomysłu.

    Kod w bardzo dużym uproszczeniu wygląda tak:
    Kod: C#
    Zaloguj się, aby zobaczyć kod


    Cytat:
    Error 1 Cannot access a non-static member of outer type 'SiKlawy.Form1' via nested type 'SiKlawy.Form1.CustomButton' C:\Users\Pp\Desktop\SiKlawy\SiKlawy\Form1.cs 324 29 SiKlawy


    Zrobiłem to dla wersji ze statyczną metodą/zmiennymi klasy calc co podziałało, lecz wciąż nie byłem w stanie zmienić w tym miejscu zawartości textboxa, przez co mimo tego, iż realna wartość do wyświetlenia się zmieniała to nie mogłem jej aktualizować w tym miejscu. Kończą mi się pomysły i cierpliwość.

    Ostatecznie chcę w tamtym miejscu wywołać albo odpowiednik przyciśnięcia klawisza albo funkcję calc.DopiszLiczbę(int) oraz zmianę tekstu w richtextbox.
  • REKLAMA
  • #2 14202345
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Ty się na pewno C# uczysz?? ;) Ten kod nie wygląda jak typowy kod WinForms. Czemu tworzysz kontrolki i zdarzenia bezpośrednio w konstruktorze? Wykorzystując designera powinny się one utworzyć automatycznie w InitializeComponents.
    Druga sprawa to ta klasa CustomButton - co to, po co ?? Masz domyślne zdarzenia dla kontrolek - KeyPress, KeyDown etc., które możesz wykorzystać do obsługi klawiszy.
    A metody Wyswietl() nie masz nigdzie zdefiniowanej, więc jak chcesz ją wywołać?
REKLAMA