Pouziti klavesnice

Pokračování základního kursu programování pro studenty 1. ročníku bakalářského studia informatiky a učitelství informatiky. Výuka bezprostředně navazuje na předmět PRG030 Programování I výkladem dalších algoritmů a jejich programové realizace, postupů a technik užívaných při tvorbě programů. Posluchači se seznámi se základy objektového programování a práce v současných vývojových prostředích. Předpokládají se vstupní znalosti v rozsahu předmětu PRG030 Programování I.
Návštěvník

Pouziti klavesnice

Příspěvek od Návštěvník »

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 :)
Him
Supermatfyz(ák|ačka)
Příspěvky: 400
Registrován: 25. 1. 2008 19:59
Typ studia: Informatika Bc.

Re: Pouziti klavesnice

Příspěvek od Him »

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);
}
Pracoval jsem na poměrně hodně materiálech pro různé předměty. Pokud Ti něco z toho ušetřilo čas, vyjádři svůj dík v podobě pár satoshi: 1H5JPTrsXie7epAQXbXhMjdgwyLbJ5NHBW ;)
Návštěvník

Re: Pouziti klavesnice

Příspěvek od Návštěvník »

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 :)
Him
Supermatfyz(ák|ačka)
Příspěvky: 400
Registrován: 25. 1. 2008 19:59
Typ studia: Informatika Bc.

Re: Pouziti klavesnice

Příspěvek od Him »

Ja to resil pres vlakna.. hledej na webu: c# Threads
Pracoval jsem na poměrně hodně materiálech pro různé předměty. Pokud Ti něco z toho ušetřilo čas, vyjádři svůj dík v podobě pár satoshi: 1H5JPTrsXie7epAQXbXhMjdgwyLbJ5NHBW ;)
Wideman

Re: Pouziti klavesnice

Příspěvek od Wideman »

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.
Odpovědět

Zpět na „PRG031 Programování II“