تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 8 از 8

نام تاپيک: سوال در خوصوص کنترل رویدادهای کیبورد در VB.Net

  1. #1
    پروفشنال shadmehrshadow1's Avatar
    تاريخ عضويت
    Oct 2009
    پست ها
    842

    پيش فرض سوال در خوصوص کنترل رویدادهای کیبورد در VB.Net

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

  2. #2
    اگه نباشه جاش خالی می مونه pezhmax's Avatar
    تاريخ عضويت
    May 2007
    محل سكونت
    رشت
    پست ها
    333

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    رو الگوریتمش که مشکل نداری؟

  3. این کاربر از pezhmax بخاطر این مطلب مفید تشکر کرده است


  4. #3
    پروفشنال shadmehrshadow1's Avatar
    تاريخ عضويت
    Oct 2009
    پست ها
    842

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    رو الگوریتمش که مشکل نداری؟
    مثله اينكه شما اصلا متوجه منظورم نشديد من ميخوام وقتي كه دكمه سمت راست صفحه كليد با همون توضيحاتي كه دادم رو فشار دادم فوكوس بره روي دكمه سمته راستش و وقتي دكمه سمت پايين رو فشار دادم فوكوس بره روي دكمه پايين

  5. #4
    اگه نباشه جاش خالی می مونه pezhmax's Avatar
    تاريخ عضويت
    May 2007
    محل سكونت
    رشت
    پست ها
    333

    پيش فرض

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

  6. #5
    داره خودمونی میشه misoft's Avatar
    تاريخ عضويت
    Dec 2008
    محل سكونت
    www.Eynak1.ir
    پست ها
    108

    پيش فرض

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

  7. #6
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    11

    سلام دوستان خسته نباشید.

    روشی که براتون میگم خیلی ساده و راحته ولی شما میتونید از بسیاری از روشها مثل آرایه ها و لیست ها استفاده کنید.
    این روش از طریق نام کنترل ها خواستتونو برآورده میکنه.شاید بعدها بدردتون بخوره که کنترل هاتونو درست نام گذاری کنید.


    به دو جدول های زیر دقت کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    جدول اول کنترل هایی هستن که رو فرم شما قرار دارند...
    و جدول دوم شماره هایی هستن که ما لازم داریم و ته هر کنترل ذکر شده اند.
    اول یه مثال میزنم:
    فرض کنید فکوس ما رو کنترل textbox6 است:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شما اگه بخواهید به راست برید باید به 6 یکی اضافه کنید که بشه 7.
    اگه بخواهید به چپ برید باید از 6 یکی کم کنید = 5.
    اگه بخواهید به بالا برید باید از 6 چهارتا کم کنید =2.
    اگه بخواهید به پایین برید باید به 6 چهار تا اضافه کنید که بشه 10


    تا اینجا که همه متوجه شدید.
    حالا چطوری ما این الگوریتم رو روی فرم پیاده سازی کنیم؟

    تابع زیر:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یک کنترل گرفته و ایندکس اونو برمیگردونه مثلاً textbox6 ایندکس 6 برمیگردونه که این تابع در اصل عدد 6 رو از نام کنترل textbox6 جدا میکنه و به ما برمیگردونه.

    تابع زیر:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یک ایندکس میگیره و کنترل رو توی فرم پیدا میکنه و به ما برمیگردونه.
    مثلاً ما اگه ایندکس 6 بدیم اون متن textbox رو به اول عدد 6 اضافه میکنه که بشه textbox6 بعد اونو توی فرم جستجو و به ما میده.

    یک کنترل بالای کدها تعریف کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بعد از اجرای فرم اون کادر متنی که میخواهید اول از روش حرکت کنید رو بریزید توی اشاره گری که درست کردیم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    الان textBox1 توی اشاره گر رفته میتونید فکوسشم بکنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این کد رو توی رویداد KeyDown فرم خودتون بذارید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خط اول:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با تابع GetIndex یی که ساختیم بالا توضیح دادم.ایندکس کنترل فکوس شده رو میریزیم توی متغیر index.
    پس چون ما اولین کنترل رو یعنی textbox1 رو توی fc ریختیم پس به ما عدد 1 رو برمیگردونه.

    switch هم که همه استادید و توضیح نمیخواد میبینه روی کدوم یک از کنترلهای حرکت کلیک کردید بعد عملیات جمع و کم رو روی ایندکس انجام میده.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مثلاً ما رو فلش سمت راست کلیک کردیم ایندکس ما هم 1 هست این میاد یکی به ایندکس اضافه میکنه و میشه 2.
    با تابع GetControl ایندکس 2 رو جستجو و کنترلش رو میگیرم.

    با شرط زیر هم چک میکنیم که کنترل خالی نباشه بعد هم کنترل پیدا شده رو فکوس میکنیم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    دیگه از این راحت تر نمیشد توضیح بدم.
    موفق باشید.
    Last edited by عــــلی; 19-10-2010 at 00:37.

  8. #7
    پروفشنال shadmehrshadow1's Avatar
    تاريخ عضويت
    Oct 2009
    پست ها
    842

    پيش فرض

    یه کد رو میزارم شاید بهتر متوجه بشید . وقتی برنامه رو اجرا کردیدا دکمه های جهت دار کیبورد رو فشار بدید مثلا دکمه ای که فلش سمت راست داره .

    راستش من یه کلاس دارم که میتونه همون کاری رو که بهتون گفتم رو انجام بده ولی من می خوام که این کلاس علاوه بر این که این کار روی انجام بده یه کاری دیگه ای هم بکنه . من میخوام وقتی که روی یکی از دکمه ها کلیک می کنم اگه مقداری در خاصیت Text این دکمه نبود عدد یک در درون این خاصیت دکمه نوشته بشه و اگه عددی در درون خاصیت Text این دکمه وجود داشت مقدارش به علاوه یک بشه یعنی اگه 2 بود بشه 3 و وقتی که خاصیت تکستش برابر با 9 بود بشه یک و همین طور وقتی روی دکمه کلیک راست کردم اگه مقداری نداشت بشه 9 و اگه مقداری داشت بشه منهای یک یعنی اگه 2 بود بشه 1 .
    اینم کد کلاس :
    یه کلاس ایجاد کنید و کد زیر رو توش کپی کنید :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و حالا کد زیر رو هم توی فرم کپی کنید :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  9. #8
    پروفشنال shadmehrshadow1's Avatar
    تاريخ عضويت
    Oct 2009
    پست ها
    842

    پيش فرض

    ممنون دستتتون درد نكنه . از همون تكست باكس استفاده كردم.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •