PDA

View Full Version : مبتدی: وارد شدن یک کلید از صفحه کلید



SamaPic
پنج شنبه 26 اردیبهشت 1392, 15:47 عصر
با سلام خدمت دوستان گرامی
بنده زیاد به وی بی آشنا نیستم و متاسفانه باید یک جا در برنامه را عوض کنم .
سوالم رو در چندین تاپیک دیدم ( جستجو کردم و یافتم ) ولی باز هم نمی دونم باید چکار کنم .
چون به وی بی هم خیلی آشنا نیستم مانده ام چه کاری انجام دهم .


من می خواهم بگم مثلا اگر کلید Tab فشرده شد ، برود سراغ Tabindex بعدی .
اما در مورد تشخیص وارد شدن کلید tab ( خواندن از صفحه کلید ) و رفتن به index بعدی مانده ام .

Private Sub Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start.Click


خواهشا توضیح دهید به کد بالا چه چیز هایی را باید اضافه کنم .
ببخشید اگر سوال بسیار مبتدی و البته بسیار هم تکراری است .
اما واقعا با خواندن مطالب سایر تاپیک ها نفهمیدم که باید به کجا باید اضافه کنم .
با تشکر فراوان.

damanpak
پنج شنبه 26 اردیبهشت 1392, 18:29 عصر
با سلام خدمت دوستان گرامی
اما در مورد تشخیص وارد شدن کلید tab ( خواندن از صفحه کلید ) و رفتن به index بعدی مانده ام .

Private Sub Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start.Click


خواهشا توضیح دهید به کد بالا چه چیز هایی را باید اضافه کنم .
ببخشید اگر سوال بسیار مبتدی و البته بسیار هم تکراری است .
اما واقعا با خواندن مطالب سایر تاپیک ها نفهمیدم که باید به کجا باید اضافه کنم .
با تشکر فراوان.

سلام به شما دوست گرامی

دوست عزیز اولا که کلید Tab کارش همینه که وقتی فشرده شد بره سراغ TabIndex بعدی بنابراین کد نویسی نمیخواد
اما ما فرض میکنیم که میخواین با زدن کلید Enter بری کنترل بعدی بنابراین میشه :


Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

If e.KeyChar = Chr(Keys.Enter) Then SendKeys.Send("{Tab}")

End Sub

SamaPic
پنج شنبه 26 اردیبهشت 1392, 19:08 عصر
با سلام مجدد و تشکر به سبب زحمتی که کشیدید .
آیا می توانید همین برنامه را روی این کد پایین تغییر بدهید ؟
ببخشید ، چون بنده هر کاری کردم نشد .
این یک دکمه است .
می خواهم بعد از زده شدن دکمه با موس ، با زدن هر بار کلید P ، تعداد چهار عدد تکس باکس در داخل برنامه با هم برابر شوند .این کار قرار است 10 بار انجام شود .
توجه کنید که این دکمه است نه تکس باکس.

Private Sub Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Start.Click


'_________________________________________________ __________________________________________________ ____________________________________
'تعیین وضعیت فعال یا غیر فعال نرم افزار منظور از فعال در حال کار است
'بالا سمت راست
LableAction.Text = "وضعیت : فعال"
LableAction.ForeColor = Color.Green

با تشکر فراوان .

damanpak
پنج شنبه 26 اردیبهشت 1392, 22:13 عصر
می خواهم بعد از زده شدن دکمه با موس ، با زدن هر بار کلید P ، تعداد چهار عدد تکس باکس در داخل برنامه با هم برابر شوند .این کار قرار است 10 بار انجام شود .

سلام مجدد خدمت شما
من متاسفانه منظور شما رو از اینکه تعداد چهار عدد تکس باکس در داخل برنامه با هم برابر شوند .
رو متوجه نمیشم!!!!میشه بیشتر توضیح بدین دقیقا چه کاری باید انجام بشه بعد از هربار زدن دکمه P؟

SamaPic
جمعه 27 اردیبهشت 1392, 14:15 عصر
با سلام .
توجه کنید بنده این تعداد باکس دارم .
می خواهم به محض خوردن دکمه P ، باکس ها مرحله اول و دوم در باکس ها مرحله سوم و چهارم قرار بگیرند ، و تفاضلشان در تکست باکس مرحله 5 قرار بگیرد
همین .
نه دکمه ای دارم نه جایی .
بایدبرنامه همینطور اجرا شود.



104293

damanpak
جمعه 27 اردیبهشت 1392, 22:36 عصر
سلام دوباره
فکر کنم منظور شما رو متوجه شده باشم(انشاالله که همینجور باشه)
نکته اصلی توی مثال شما تینه که برنامه روی هرکنترلی که هتسین باید متوجه بشه که کلید P زده شده یانه بنابراین شما توی فرم مورد نظرتون خاصیتی وجود داره به نام KeyPrewiew که باید مقدارش رو به True تغییر بدین
بعد توی رویداد Keypress فرمتون کد نویسی مربوط به انتقال داده ها در باکس های مرحله سوم و چهارم و نمایش تفاضل آنها رو در باکس های پنجم بنویسید
راستش من متاسفانه متوجه نشدم که توی باکس پنجم تفاضل چه مرحله ای باید قرار بگیره وگرنه کدش رو براتون میزاشتم
بهرحال اگه نتونستین این کار رو انجام بدین توی باکسهایی که توی تصویر که قرار دادین اعدادی برای مثال قرار بدین و همچنین محاسبه تفاضلشون رو توی باکسهای پنجم قرار بدین تا براتون کدش رو قرار بدم

SamaPic
یک شنبه 29 اردیبهشت 1392, 10:00 صبح
104368

با سلام و تشکر فراوان.

بنده در فرم مقدار KeyPrewiew را True کردم . اما باز هم در فرم Keypress را نمی شناسد.

برای بنده فرمولش مهم نیست .
فقط کارش مهمه :

x مرحله اول = x مرحله سوم * یک مقدار ثابت ( که شما 1 در نظر بگیرید )
y مرحله اول = y مرحله سوم * یک مقدار ثابت ( که شما 1 در نظر بگیرید )
________________________
X مرحله دوم = X مرحله چهارم * یک مقدار ثابت ( که شما 1 در نظر بگیرید )
Y مرحله دوم = Y مرحله چهارم * یک مقدار ثابت ( که شما 1 در نظر بگیرید )
________________________
x مرحله پنجم = جمع x های مراحل اول و سوم - جمع x های مراحل دوم و چهارم
y مرحله پنجم = جمع y های مراحل اول و سوم - جمع y های مراحل دوم و چهارم

بسیار سپاس گذارم.

damanpak
یک شنبه 29 اردیبهشت 1392, 11:23 صبح
سلام
برنامه رو براتون کدنویسی کردم که انشالله جوابتون رو گرفته باشین
ذکر چند نکته الزامیه:
1-برای راحتی کارم داده های رو به جای TextBox توی DataGridView گذاشتم
2-یک دکمه توی برنامه هست با عنوان تولید اعداد تصادفی که برای دیدن نتیجه برنامه ازش استفاده کردم
3-توی TextBox هایی که توی فرم هست مقدار عدد ثابتی که فرمودین قرار میگیره
4-واسه جمع و تفاضل ستونهایی که فرمودین کدنویسیش توی یک تابع قرار داره
5-خاصیت KeyPreview فرم True شده و توی رویداد KeyPress فرم گفتم که اگر کاربر کلید P رو از صفحه کلید زد تابع مورد نظر رو اجرا کنه
104371
موفق باشید

SamaPic
سه شنبه 31 اردیبهشت 1392, 14:36 عصر
با سلام و شتکر بسیار فراوان .
حالا اگر من بخواهم به او بگویم منتظر فشرده شدن کلید باش.
این کد را که اضافه کردم ، همه باکس ها همزمام کار می کنند. اما من می خواهم تک به تک با زدن این کلید این کار انجام بشه نه با زدن یک بار کلید همه مقدار بگیرند.
باتشکر.

damanpak
سه شنبه 31 اردیبهشت 1392, 20:03 عصر
سلام
این واسه تعداد کمی از تکستک باکس ها هستش
بقیش به عهده خودتون
104476