PDA

View Full Version : سوال: بستن صفحه با زدن کلید escape



mostafah110
یک شنبه 03 مرداد 1389, 22:52 عصر
سلام.
من داخل رویدادهای صفحه در رویداد keypress می نویسم که اگر escape را وارد کرد صفحه بسته شود اما اگر مثلا داخل یک textBox باشیم و شخص escape را بزند این رویداد عمل نمی کند چون در صفحه نیستیم، حالا به نظر شما چه کنم که اگر escape خورد صفحه بسته شود ممنون.

راستی نیمه شعبان را تبریک میگم، این ویژه نامه را هم من نوشتم:
http://www.tathira.com/Main-vizhe.aspx?code=8

mmd2009
یک شنبه 03 مرداد 1389, 23:02 عصر
با سلام

من کد زیر رو نوشتم درست کار کرد با اینکه حتی تکست باکس Select شده بود



private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
this.Close();
}




KeyPreview == true

mostafah110
یک شنبه 03 مرداد 1389, 23:10 عصر
من هم همینو می نویسم اما نمی دونم چیه.. البته شما با keydownنوشتید من هم همینو نوشتم، اما نشد که نشد!!!
راستی من از mdiparent هم استفاده کردم بخاطر این که نیست؟

vandermond
یک شنبه 03 مرداد 1389, 23:21 عصر
دوست عزيز
ميتونم بپرسم شما توي KeyPress چي نوشتيد؟
كدش رو لطفا بزاريد.

mostafah110
یک شنبه 03 مرداد 1389, 23:26 عصر
همون کد دوستمون آقای دیناروند:

if (e.KeyCode == Keys.Escape)
this.Close();

vandermond
یک شنبه 03 مرداد 1389, 23:29 عصر
دوست عزيز
شما گفتيد توي KeyPress كد رو گذاشتيد. در حالي كه KeyPress اصلا نميتونه e.KeyCode داشته باشه. فقط KeyChar داره. پس برنامه اصلا نبايد اجرا بشه. نميدونم چه طور اجرا ميشه و چه طور وقتي بيرون تكست باكس هستيد، درست عمل ميكنه.:متعجب:لطفا توي همون KeyDown بزاريد و امتحان كنيد دوباره

mostafah110
یک شنبه 03 مرداد 1389, 23:32 عصر
دوست عزيز
شما گفتيد توي KeyPress كد رو گذاشتيد. در حالي كه KeyPress اصلا نميتونه e.KeyCode داشته باشه. فقط KeyChar داره. پس برنامه اصلا نبايد اجرا بشه. نميدونم چه طور اجرا ميشه و چه طور وقتي بيرون تكست باكس هستيد، درست عمل ميكنه.:متعجب:لطفا توي همون KeyDown بزاريد و امتحان كنيد دوباره

ها ببخشید من این طوری نوشتم::کف:

private void addKindForm_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Convert.ToChar(Keys.Escape))
this.Close();
}

vandermond
یک شنبه 03 مرداد 1389, 23:35 عصر
احتمالا مشكل از جاي ديگه هستش چون اين كد براي من درست كار ميكنه.
mdiparent هم فكر نميكنم مشكلي ايجاد كنه.

mostafah110
یک شنبه 03 مرداد 1389, 23:40 عصر
احتمالا مشكل از جاي ديگه هستش چون اين كد براي من درست كار ميكنه.
mdiparent هم فكر نميكنم مشكلي ايجاد كنه.

من حتی اگر در یک فرم textBox هم نداشته باشم، باز هم همین مشکل هست

مثلا من این کد را نوشتم در فرمی که اصلا textBox نداره، ... اما باز هم جواب نمی ده:

private void aboutForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
this.Close();
}

اصلا انگار نه انگار در فرمم داره یه کلید فشار داده میشه، نه keyUp نه keyDown نه هم keyPress... خدا می دونه چیه قضیه؟!!!

برای شما که کار می کنه؟ عجیبه؟ مطمئنید دیگه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:عص انی++::عصبانی++::عصبانی++:

vandermond
یک شنبه 03 مرداد 1389, 23:50 عصر
من حتی اگر در یک فرم textBox هم نداشته باشم، باز هم همین مشکل هست

مثلا من این کد را نوشتم در فرمی که اصلا textBox نداره، ... اما باز هم جواب نمی ده:

private void aboutForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
this.Close();
}

اصلا انگار نه انگار در فرمم داره یه کلید فشار داده میشه، نه keyUp نه keyDown نه هم keyPress... خدا می دونه چیه قضیه؟!!!

برای شما که کار می کنه؟ عجیبه؟ مطمئنید دیگه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:عص انی++::عصبانی++::عصبانی++:
دوست عزيز
KeyPreview فرم رو True كردي؟
شايد يادت رفته باشه.

mostafah110
دوشنبه 04 مرداد 1389, 00:00 صبح
دوست عزيز
KeyPreview فرم رو True كردي؟
شايد يادت رفته باشه.



آقا روم سیاه!!!!!!!!!!!!!! :بامزه: یادم رفته بود نه!!!
ممنون از صبر شما... یک تشکر کافی نیست ، باید هزار تا کرد

یا علی
عیدتون هم مبارک

vandermond
دوشنبه 04 مرداد 1389, 00:05 صبح
آقا روم سیاه!!!!!!!!!!!!!! :بامزه: یادم رفته بود نه!!!
ممنون از صبر شما... یک تشکر کافی نیست ، باید هزار تا کرد

یا علی
عیدتون هم مبارک
خواهش
چون ديشب خودم يادم رفته بود و بعدش يكي از دوستان گفت، الان يادم بود:لبخند:

mmd2009
دوشنبه 04 مرداد 1389, 00:20 صبح
دوست عزیز یک پروژه جدید ایجاد کنید

کد خروج رو بذارید داخلش و دو باره اجرا کنید برنامه رو ببینید انجام میده یا نه؟

mostafah110
دوشنبه 04 مرداد 1389, 00:25 صبح
دوست عزیز یک پروژه جدید ایجاد کنید

کد خروج رو بذارید داخلش و دو باره اجرا کنید برنامه رو ببینید انجام میده یا نه؟


خیلی ممنون، مشکل من این بود که پست اول شما رو دقیق نگاه نکردم،
keypreview == true

حالا keypreview رو که true کردم همه مشکلات حل شد.

thanks a lot