|
Ahoj, potřeboval bych poradit s tímto problémem: Hraju si s WinForms a udělal jsem si formulář, kde pohybuju s kolečkem po formuláři:
public partial class Form1 : Form { Rectangle rect = new Rectangle(0, 0, 50, 50); Rectangle pomocnyRectangle = new Rectangle(-5, -5, 60, 60);
public Form1() { InitializeComponent(); }
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics grfx = e.Graphics; grfx.FillEllipse(new SolidBrush(Color.Green), rect); }
private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Down) { rect.Offset(0, 5); pomocnyRectangle.Offset(0, 5); } if (e.KeyCode == Keys.Up) { rect.Offset(0, -5); pomocnyRectangle.Offset(0, -5); } if (e.KeyCode == Keys.Left) { rect.Offset(-5, 0); pomocnyRectangle.Offset(-5, 0); } if (e.KeyCode == Keys.Right) { rect.Offset(5, 0); pomocnyRectangle.Offset(5, 0); } Invalidate(pomocnyRectangle); }
Všechno funguje jak jsem očekával.
Pak jsem si vytvořil ovládací prvek podle článku : http://www.netstudent.cz/%C4%8Cl%C3%A1nky/tabid/56/articleType/ArticleView/ArticleID/183/PageID/172/Default.aspx
Když ho přidám na formulář, tak nemohu s kolečkem pohybovat. Neodpálí se totiž událost Form1_KeyDown.
Hledal jsem na internetu a našel, že musim nastavit vlastnost KeyPreview na true. To jsem udělal, ale problém to nevyřešilo. Událost se stále neodpálí.
Jakmile ale na formulář přidám textBox, tak vše funguje. Nevíte, kde je problém?
|