PDA

View Full Version : سوال: استفاده از کیبورد در سی شارپ



capsloack
یک شنبه 19 شهریور 1391, 12:23 عصر
سلام دوستان
من دارم برنامه تتریس رو مینویسم اما نمیدونم چطور شکل ها رو با استفاده از دکمه های کیبورد حرکت بدم
از چه کدی باید استفاده شه؟
برای ساخت شکل ها هم از button استفاده کردم
ممنون میشم کمک کنین:ناراحت:

harani
یک شنبه 19 شهریور 1391, 12:48 عصر
من که جوابتون یه دفعه داده بودم .مگه درست نبود ؟؟؟


if (e.KeyCode == Keys.Up) button1.Top -= 10;//10 vahed be bala
if (e.KeyCode == Keys.Down) button1.Top += 10;//10 vahed be payin
if (e.KeyCode == Keys.Left) button1.Left -= 10;//10 vahed be Chap
if (e.KeyCode == Keys.Right) button1.Left += 10;//10 vahed be Rast

capsloack
یک شنبه 19 شهریور 1391, 13:36 عصر
اررور میده...

The event 'System.Windows.Forms.Control.KeyDown' can only appear on the left hand side of += or -= 3

yashar_sb_sb
یک شنبه 19 شهریور 1391, 14:06 عصر
من که جوابتون یه دفعه داده بودم .مگه درست نبود ؟؟؟


if (e.KeyCode == Keys.Up) button1.Top -= 10;//10 vahed be bala
if (e.KeyCode == Keys.Down) button1.Top += 10;//10 vahed be payin
if (e.KeyCode == Keys.Left) button1.Left -= 10;//10 vahed be Chap
if (e.KeyCode == Keys.Right) button1.Left += 10;//10 vahed be Rast


سلام

با button نمیشه این کار رو به این روش انجام داد.
چون خود باتن focus داره.
event خود باتن اجرا میشه نه event کلاس form

yashar_sb_sb
یک شنبه 19 شهریور 1391, 14:21 عصر
برای حرکت دادن PictureBox اینطور میشه:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
PictureBox pic;
public Form1()
{
InitializeComponent();
pic = new PictureBox();
this.Controls.Add(pic);
pic.BackColor = Color.Black;
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
}
void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 37)
pic.Left -= 10;
if (e.KeyValue == 39)
pic.Left += 10;
if (e.KeyValue == 38)
pic.Top -= 10;
if (e.KeyValue == 40)
pic.Top += 10;
}
}
}

harani
یک شنبه 19 شهریور 1391, 15:41 عصر
سلام

با button نمیشه این کار رو به این روش انجام داد.
چون خود باتن focus داره.
event خود باتن اجرا میشه نه event کلاس form

نه دوستمون درست میگن من یادم نبود .

ehsan7007
یک شنبه 19 شهریور 1391, 16:20 عصر
این که حرکت نمی کنه!

harani
یک شنبه 19 شهریور 1391, 16:30 عصر
خصوصیت foemkeypreview باید true باشد .

بهتر است از
if (e.KeyCode == Keys.Up) button1.Top -= 10;//10 vahed be bala
استفاده شود .

capsloack
یک شنبه 19 شهریور 1391, 19:41 عصر
خصوصیت foemkeypreview باید true باشد .

بهتر است از
if (e.KeyCode == Keys.Up) button1.Top -= 10;//10 vahed be bala
استفاده شود .

من باتن ها رو خودم ساختم نه با اون هایی که توی سی شارپه
این foemkeypreview کجاست؟