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

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




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

نام تاپيک: دستور shortcut !

  1. #1
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض دستور shortcut !

    فرض کنید که من یه button درست کردم و دستورات مربوط به اون دکمه رو هم نوشتم.

    حالا یه منو میسازم. میخوام هرکی روی یکی از گزینه های این منو کلیک کنه همون دستوری که روی دکمه نوشتم اجرا کنه، حتما باید دوباره اون دستور رو بنویسم ؟!!

    آیا کدی وجود داره که بدون نوشتن مجدد دستور اون دستور رو برام اجرا کنه ؟

  2. #2
    اگه نباشه جاش خالی می مونه بهرام_62's Avatar
    تاريخ عضويت
    Jan 2008
    پست ها
    343

    پيش فرض

    Call Command1_Click
    مثلا اگر کد رو توی دابل کلیک نوشته شده باشه باید همون رویداد رو بنویسی
    یعنی
    Call Label1_DblClick
    فهمیدی؟

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


  4. #3
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    حالا یه منو میسازم. میخوام هرکی روی یکی از گزینه های این منو کلیک کنه همون دستوری که روی دکمه نوشتم اجرا کنه، حتما باید دوباره اون دستور رو بنویسم ؟!!
    هیچگاه در هیچ محیطی و هیچ زبان برنامه نویسی (ویندوز و وب و قابل حمل و... و...) به هیچ وجه همچین مواردی دستور را copy و paste نکنید، این برخلاف اصول برنامه نویسی ساختار یافته است.

    1) راه ساده در اکثر زبان های برنامه نویسی این است که یک متد بنویسید و از دو رویداد مختلف این متد را فراخوانی کنید.

    2) میتوان کد را در یکی از روال های رویداد نوشت و در روال دیگر این رول را فراخانی کرد.

    3) در VB9 میتوان از فرمان Me.buttonname.PerformClick برای شبیه سازی رویداد یک دکمه یا منو استفاده کرد.

    4)Handler کردن متدها به یک روال واحد (در صورت یکسان بودن امضای توابع، بهترین روش خواهد بود.)
    این کار با دستور AddHandler و یا جفت WithEvents و Handles امکان پذیر است.

    در VB6 هندلر رویداد واحد بود و بر اساس نام روال صورت میگرفت!!!!!! (کاملاً ضد OOP)

    در نسخه جدید شما میتوانید بینهایت رویداد از کنترلرها و بخش های مختلف را به یک روال یکسان handler کنید و هر زمان که خواستید این ارتباط را قطع و یا وصل کنید(AddHandler+RemoveHandler) و یا از سیستم خودکار دو کلمه کلیدی WithEvents+Handles استفاده کنید

    من برای وضوح بیشتر خط ها را به چندین خط دارای آندرلاین شکسته ام، شما میتوانید کلش را در یک خط بنویسید.
    (نمونه هندلر چند رویداد با امضای delegate نوع System.EventHandler)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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


  6. #4
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    من این کار رو کردم ولی نشد !!!!!!!!!!!!!!

    مشکل چیه ؟

    من این کد رو نوشتم ولی عمل نکرد :

    برای button اولی دستور اضافه کردن یک string رو دادم، برای button دومی هم کد زیر رو نوشتم تا دستور button اولی رو اجرا کنه ولی نشد ! :

    PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click, Button1.Click
    EndSub


  7. #5
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    برای button اولی دستور اضافه کردن یک string رو دادم، برای button دومی هم کد زیر رو نوشتم تا دستور button اولی رو اجرا کنه ولی نشد ! :


    فکر کنم یا بد توضیح دادم یا بد متوجه شدید.
    کلمه Handles یک کمی با AddHandler تفاوت دارد!

    با این کدی که شما نوشته اید اگر هر کدام از دو دکمهع کلیک شوند روال Button2_Click اجرا خواهد شد.

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

    شما باید کدی مشترکی را که میخواهید در قبال هر دو رویداد اجرا شود در همین متد Button2_Click تان بنویسید نامش هم مهم نیست...
    برای هر متدی با امضای هماهنگ اگر آخرش Handles Button2.Click, Button1.Click را داشته باشد در قبال هر دو رویداد همان متد، فقط خودش اجرا خواهد شد.

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


  9. #6
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    واقعا ازتون ممنونم، الان خیلی خوب متوجه شدم.

    ولی خوب شما هم قبول کنید که یه ذره بالای لیسانس توضیح میدید

    اون وقت یکی مثل من که هنوز دیپلم نگرفته، نمیفهمه !

    البته مشکل صد در صد از من بوده، شاید متن بالا رو خوب متوجه نشدم.

    ممنون از زحمات شما

  10. #7
    داره خودمونی میشه
    تاريخ عضويت
    Jun 2008
    پست ها
    30

    پيش فرض

    دوست عزیز فکر میکنم اگر انگشتان خود را با دو دکمه Ctrl+C & Ctrl+V تماس دهید خیلی راحت ترید وقتی یک زبان اجازه این کار را به شما میدهد از این عمل استفاده کنید و لذت ببرید (تو Cدیگه کپی پستی وجود نداره!)


    موفق باشید

  11. #8
    در آغاز فعالیت Empty's Avatar
    تاريخ عضويت
    Sep 2008
    پست ها
    8

    پيش فرض

    چرا از این استفاده نمیکنی؟؟
    call cmd_Click

  12. #9
    آخر فروم باز 3Dmajid's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    پشت کامپیوتر
    پست ها
    6,067

    پيش فرض

    دوست عزیز فکر میکنم اگر انگشتان خود را با دو دکمه Ctrl+C & Ctrl+V تماس دهید خیلی راحت ترید وقتی یک زبان اجازه این کار را به شما میدهد از این عمل استفاده کنید و لذت ببرید (تو Cدیگه کپی پستی وجود نداره!)
    منظورتون رو متوجه نشدم ... یعنی دوباره همون کدی که واسه ی یه کنترل نوشتیم واسه shortcut هم بنویسیم ؟
    این کار اصلا با عقل جور در نمیاد و طبق حرفی که بالا گفته شد :

    هیچگاه در هیچ محیطی و هیچ زبان برنامه نویسی (ویندوز و وب و قابل حمل و... و...) به هیچ وجه همچین مواردی دستور را copy و paste نکنید، این برخلاف اصول برنامه نویسی ساختار یافته است


    وقتی vb2008 میاد و این امکان رو به راحتی آب خوردن به کاربراش میده دیگه چه دلیلی داره که ما بیام انگشتمون رو با کلید های ctrl+c و ctrl+v تماس بدیم ؟

Thread Information

Users Browsing this Thread

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

User Tag List

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

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