Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VB 2012 - Blokada strzałek

xenoo 11 Lis 2013 19:46 1482 10
  • #1 11 Lis 2013 19:46
    xenoo
    Poziom 6  

    Mam dwa buttony i chcę, żeby nie było możliwości wybierania buttonów za pomocą strzałek. Jak to zrobić ?

    0 10
  • #2 11 Lis 2013 19:56
    cepelia
    Poziom 20  

    pomyśl i pokombinuj z mouseMove ...

    0
  • Pomocny post
    #3 12 Lis 2013 23:15
    23844
    Użytkownik usunął konto  
  • #4 13 Lis 2013 17:33
    xenoo
    Poziom 6  

    Dzięki wielkie, działa. Jeszcze mam taki problem. Gdy mam wciśnięty klawisz i gdy wciskam drugi równocześnie, to chcę, żeby ignorowało ten drugi i wczytało tylko ten pierwszy. Utrudnieniem jest wprowadzenie do textbox'a, który ma wartość Enabled = False.

    0
  • Pomocny post
    #5 13 Lis 2013 22:15
    rufek90
    Poziom 24  

    xenoo,

    Odgrzeję jeszcze pierwsze pytanie. Jakiś czas temu miałem podobny problem, poradziłem sobie z nim w taki sposób:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Myślę, że to lepsze rozwiązanie, bo nie tworzysz niepotrzebnego buttona :) Kod co prawda w c#, ale chyba nie będzie problemu z przeróbką.

    Nie za bardzo rozumiem kolejne pytanie. Tekst wpisujesz do textboxa, tak? chcesz go ograniczyć do wpisania wyłącznie jednego znaku?

    0
  • #6 14 Lis 2013 17:35
    xenoo
    Poziom 6  

    Przerobiłem to w ten sposób.

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Nie wywala błędu, więc jest dobrze, tylko nie wiem jaki jest prawidłowy kod na kliknięcie. Od niedawna się uczę VB, ambicji mi nie brakuję, więc cały czas uczę się czegoś nowego.

    Cytat:
    Tekst wpisujesz do textboxa, tak? chcesz go ograniczyć do wpisania wyłącznie jednego znaku?


    Mam okno, które ma wartość Enabled = False i głównie rozchodzi się o to, gdy wcisnę klawisz [ctrl] lub [alt] to ma nie wprowadzać tekstu do tego okna podczas gdy, wyżej wymienione klawisze będą również wciśnięte. I instrukcja ma działać tylko pod te dwa klawisze.

    I tak z ciekawości, da radę ustawić by przycisk miał ciągle wartość focus=false ? Tzn. podczas wybierania strzałkami, żeby go pomijać ?

    0
  • Pomocny post
    #7 14 Lis 2013 19:02
    rufek90
    Poziom 24  

    Nie wiem, czy dobrze zrozumiałem. Mój przykład sprawdza, jaki klawisz został wciśnięty i jeżeli to NIE ctrl i NIE alt, to przepuszcza go do textboxa. Z altem działa super, z controlem są problemy, bo nagle znikają litery, lub zaznacza się cały tekst, chyba taka uroda klawisza ctrl... Jak masz enabled=false to raczej niewiele możesz zrobić z kontrolką...

    Możesz to zrobić w ten sposób (tak, znow c# :) )

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Zwróć uwagę, żeby event był KeyDown.

    Wydaje mi się, że nie można zrzucić fucusa. Kojarzy mi się, że był kiedyś event w stylu "GotFocus" albo coś takiego, nim by można było pokombinować. Ja niestety go u siebie nie mam - może tylko mi się wydawało?

    0
  • #8 14 Lis 2013 19:37
    xenoo
    Poziom 6  

    Kiedyś właśnie tak zrobiłem i nie działało, a powodem tego był brak zmiany eventu. Nie mam pojęcia jak mogłem o takim istotnym szczególe zapomnieć. Dzięki wielkie za pomoc.

    Jak czujesz się na siłach to mam też grubszą sprawę do rozwiązania.

    Mam w takiej formie zapisany tekst:

    Richtextbox:
    tekst1: cyfra1 innytekst1
    tekst2: cyfra2 innytekst2
    tekst3: cyfra3 innytekst3

    Combobox:
    tekst2

    I chodzi mi głównie o to, żeby w richtextboxie znalazło wybrany tekst, który jest w comboboxie i po znaku ":" przypisało mi do zmiennej tylko cyfrę właśnie przypisaną do tego tekstu.

    Na tą chwilę mam zrobione wyszukiwanie w ten sposób i dalej tutaj tkwię

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #9 14 Lis 2013 19:58
    rufek90
    Poziom 24  

    Łap kod w c# i sam sobie porównaj, co możesz mieć źle. Załączam też projekt. Ja mam alergię na VB :) Kod nie jest pancerny. Jak wpiszesz tekst ze spacjami to może się posypać. zmienna jest na razie typu tekstowego, pewnie będziesz chciał ją sobie zapisać do inta, więc musisz parsować.

    Kod: csharp
    Zaloguj się, aby zobaczyć kod



    Edit: jeżeli dopiero zaczynasz, to pewnie nie znasz takich ciekawych funkcji jak Trim(), Split() itp, pewnie nie zaznałeś też debugowania projektu. Możesz zatem połączyć jedno z drugim i zdebugować sobie projekt i sprawdzić, jak zachowują się zmienne w trakcie działania programu. Może pomoże Ci w tym to video:

    http://www.youtube.com/watch?v=C0vDKXIq_9A

    0
  • #10 22 Lis 2013 16:55
    xenoo
    Poziom 6  

    Dzięki wielkie za pomoc, coś idzie do przodu. Niestety dopiero teraz miałem czas, żeby to przerobić i sprawdzić czy działa. Dzięki również za video.

    0
  • #11 27 Lis 2013 18:21
    xenoo
    Poziom 6  

    Ok, to już to mam, teraz tylko napotkałem kolejny błąd.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Prawie wszystko jest ok, wyszukuje mi tego stringa co chce. Problem tkwi teraz w Additional information: Indeks wykraczał poza granice tablicy.
    Dotyczy to tego: lblzmienna.Text = reszta.Split(" ")(1).ToString(). Nie potrafię poradzić sobie z tym problemem. Zapewne jest to łatwo do naprawienia, mimo to prosiłbym o poradę.

    0