Pouziti klavesnice

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Pouziti klavesnice

Re: Pouziti klavesnice

od Wideman » 30. 7. 2008 16:09

Někde dole v této diskusi: http://forum.builder.cz/read.php?31,2672162 je odkaz na dobrej popis vláken v C#. Je to myslim kapitola z knihy C# in nutshell a já jsem se to z toho učil. Mimochodem při práci na zápočťáku jsem objevil tento web: https://downloads.channel8.msdn.com/ Tam si můžete zdarma stáhnout VS 2008 Professional a další programy, ale musíte se zaregistrovat a mít platnou ISIC kartu UK, jejíž kód to při registraci taky vyžaduje.

Re: Pouziti klavesnice

od Him » 30. 7. 2008 13:29

Ja to resil pres vlakna.. hledej na webu: c# Threads

Re: Pouziti klavesnice

od Návštěvník » 30. 7. 2008 13:25

Diky, ale to nedela to co potrebuju :(

napr. v tomhle

Kód: Vybrat vše

public partial class Form1 : Form
    {
        // override ProcessCmdKey pro zachytavani stisku klaves: left/right/up/down arrow atd..
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Left)
            {
                MessageBox.Show("Vlevo");
                return true;
            }
            if (keyData == Keys.Right)
            {
                MessageBox.Show("Vpravo");
                return true;
            }
            if (keyData == Keys.Down)
            {
                MessageBox.Show("Dolu");
                return true;
            }
            if (keyData == Keys.Up)
            {
                MessageBox.Show("Nahoru");
                return true;
            }

            return base.ProcessCmdKey(ref msg, keyData);
        }

        private void button1_Click(object sender, EventArgs e)
        {

            System.Random rnd = new System.Random();
            for (int i = 0; i < 1000; i++)
            {
                button1.Top = rnd.Next(100);
                button1.Left = rnd.Next(200);
                for (int j = 0; j < 100000; j++)
                {
                }
            }
        }
    }

po stisku tlacitka mi nereaguje klavesnice, pouze po skonceni for cyklu mi to vyhodi message box prvni sipky kterou jsem zmackl .

Ja bych ale potreboval aby mi hned po stisku klavesy vyhodilo ten messagebox :)
pls nejakou radu
diky :)

Re: Pouziti klavesnice

od Him » 30. 7. 2008 12:56

Normalne ProcessCmdKey nezachytava sipky, musis tu metodu overridnout

Kód: Vybrat vše

// override ProcessCmdKey pro zachytavani stisku klaves: left/right/up/down arrow atd..
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
        if (keyData == Keys.Left) // Keys.Right,...
        {
            // proved neco 
            return true;
        }

        return base.ProcessCmdKey(ref msg, keyData);
}

Pouziti klavesnice

od Návštěvník » 30. 7. 2008 12:36

Ahoj :)

Pisu zapoctak k programku, ale mam mensi problem.
Je to Windows aplikace a potrebuju po stisku klaves vyvolat nejakou udalost (jsou to sipky, ktere mi meni smer).
Ale nevim jak to udelat :( dal jsem tam ctyri buttony jenze k nem nemuzu pridat klavesovou zkratku :(
pls poradte jak to mam udelat.

Diky :)

EDIT: Jo a pisu to v Microsoft Visual C# Express Edition :)

Nahoru