» »

[c#]izvajanje kode

[c#]izvajanje kode

Loaded ::

Zdravo!

Zanima me zakaj se izvede vsa ostala koda in šele potem se zamenja ozadje na gumbu. Rad bi da se to zgodi najprej.

material_button.BackgroundImage = Properties.Resources._1_gradivo_cb;
//neka koda


Hvala

Lp
Loadeed

LeQuack ::

material_button.Refresh();
Quack !

Ericssony ::

Zato, ker to narediš na glavni niti, ki nima časa osvežiti UI...

Loaded ::

Hvala...dela.

Zanima pa me naslednje. Spodnjo kodo sem najdo tule, ampak ne dela.

 
private void Ime_forme_KeyPress(object sender, KeyPressEventArgs e) {
     switch (e.KeyChar) {
          case (char)1: { ... break; }
          default: { ... break; }
     }
}


Noben case se ne izvede samo default.
Loadeed

darkolord ::

Kaj točno bi rad naredil?

joze67 ::

Si na formi postavil KeyPreview=true?

Loaded ::

Sem ja. Problem je v tem da če to nardim z if stavki, deluje. Ampak zakaj je potem ta koda na Microsoftovi strani, če ne dela?..poleg tega maš pri switch lepo možnost default, če slučajno user stisne napačno tipko.
Loadeed

darkolord ::

No daj pokaži celo kodo oz. relevanten del (tako da se da copy/pastat in probat)

Loaded ::

Naredi si eno formo, pa daj gor event keyPressed. Ne pozabi v konstrukturju napisat:

 
     this.KeyPreview = true;


Tole pa je koda v eventu:

     private void TalkToLearn_KeyPress(object sender, KeyPressEventArgs e)
     {
         switch (e.KeyChar) 
         {
              case (char)1: { neko kodo tu napiši... break; }
              default: { break; }
         }
     }
Loadeed

darkolord ::

Čisto lepo deluje.

Ne vem sicer kaj si mislil s tem "(char)1" narest, zato sem tudi vprašal.

Če želiš, da se preveri, ali je pritisnjena številka "1" na tipkovnici, potem moraš uporabiti:

case '1':

ali
case (char)49:


To so namreč ASCII kode - pod ASCII kodo 1 je SOH (start of header) znak, ki ga na običajni tipkovnici ne moreš pritisniti.

Zgodovina sprememb…

LeQuack ::

Darko ima kar prav.
Quack !

_Dejan_ ::

jaz ponavadi delam tako.
Najprej nastaviš nekje na začetku izvajanja aplikacije:

this.KeyPreview = true;


Potem pa v KeyDown eventu na formi gledam in primerjam stanja npr:
private void TalkToLearn_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.D1)
            {
                //Naredi nekaj
            }
        }


v tvojem primeru bi bilo nekaj takega:

private void TalkToLearn_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode) 
            {
                case Keys.D1: { /* D1 = 1 ... neko kodo tu napiši...*/ break; }
                case Keys.D2: { /* D2 = 2 ... neko kodo tu napiši...*/ break; }
                default: { break; }
        }
ASUS P5E3, INTEL Q6600(3000Mhz 333x9), ATI HD 2600XT,
A-Data 4x2GB PC3-10700H(9-9-9-24-2T),LSI 9260-8i,
4x OCZ Vertex Turbo 30GB(RAID10), 3x1TB (RAID1+Spare)

Zgodovina sprememb…

  • spremenil: _Dejan_ ()

Loaded ::

Kaj je torej boljše KeyDown ali KeyPressed....pri KeyPressed ni na eventu key kode (KeyCode). Oziroma kaj je sploh razlika?

EDIT: @darkolord: aja tisto so ASCII. :)
Loadeed

Zgodovina sprememb…

  • spremenil: Loaded ()

LeQuack ::

KeyPress je za tiste tipke, ki imajo črke oz. številke (non-whitespace). KeyDown je za vse tipke, tudi Shift, Ctrl in podobno.
Quack !


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] event, klik tipke escape

Oddelek: Programiranje
7567 (471) japol
»

[Java] Zasnova shoot em up igre

Oddelek: Programiranje
11961 (640) PecenkA
»

C# - keypress

Oddelek: Programiranje
201324 (1055) urkrajnc
»

pošiljanje SMS C#

Oddelek: Programiranje
132737 (2230) Neon87
»

[C#]Textbox ki dovoli samo številke

Oddelek: Programiranje
121165 (1029) darkolord

Več podobnih tem