نمایش نتایج 1 تا 2 از 2

نام تاپیک: ایجاد منوی راست کلیک برای کنترل ها و ایجاد رویداد آن با کد

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار fool66
    تاریخ عضویت
    آذر 1390
    محل زندگی
    Telegram.me/programmerirani
    پست
    576

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

    به نام خدا
    سلام با اجازه اساتید می خوام آموزش نحوه ایجاد یک منوی راست کلیک و تولید رویداد اونو براتون بزارم امیدوارم کمی و کاستی داشت به بزرگواری خودتون ببخشید

    1- برای این کار ابتدا یک کنترل دلخواه که می خواهید منوی راست کلیک روی اون اجرا بشه به فرم اضافه کنید ( من یک lable می زارم اسمش label1 هست )

    2- یک شی از نوع ContextMenu در فرم خودتون ایجاد کنید به صورت زیر:

    ContextMenu main = new ContextMenu();

    3-به تعداد مورد نیاز شی از نوع MenuItem ایجاد می کنیم برای گزینه های راست کلیک،برای این کار به صورت زیر عمل می کنیم ( مثلا من 5 تا اضافه می کنم)

    MenuItem item1 = new MenuItem("text1");
    MenuItem item2 = new MenuItem("text2");
    MenuItem item3 = new MenuItem("text3");
    MenuItem item4 = new MenuItem("text4");
    MenuItem item5 = new MenuItem("text5");

    3-حالا باید این آیتم ها رو به منو انتساب بدیم در form_load به این صورت می نویسیم (اگر زیر منو نداشته باشیم):
    main.MenuItems.AddRange(new MenuItem[] {item1,item2,item3,item4,item5});

    ولی اگر بخواهیم
    item5 زیر منوی item4 و item4 زیر منوی item3 باشه اینطور می نویسیم:
    main.MenuItems.AddRange(new MenuItem[] {item1,item2,item3});
    item3.MenuItems.AddRange(new MenuItem[] { item4 });
    item4.MenuItems.AddRange(new MenuItem[] { item5 });

    4- حال منو رو باید به کنترل اضافه شده نسبت بدیم ( همون که قسمت اول گفتم مثلا من label1 رو اضافه کردم ) ، در _MouseDown کنترل به این صورت می نویسیم :

    private void label1_MouseDown(object sender, MouseEventArgs e)
    {
    if (MouseButtons == MouseButtons.Right)
    {
    main.Show(label1, e.Location);
    }
    }

    5- اگر الان یک اجرا از برنامه خودتون بگیرید و می بینید روی شی که تعیین کرده اید با راست کلیک منو ظاهر می شود ولی عملی انجام نمی دهد حالا نیاز داریم که برای منوی خودمون رویداد ایجاد کنیم ( شوخی نکن نمی گفتی نمی دونستیم )

    6- برای ایجاد رویداد در form_load خومون اینطور می نویسیم برای Itemمورد نظرمون:
    آیتم_موردنظر.Click += new EventHandler(اسم_رویداد_به_دلخواه  );

    item2.Click += new EventHandler(item2_Click);

    7- حالا برای رویدادی که نوشتیم تابع رو می نویسیم :
       private void اسم_رویدادی_که_انتخاب_کردیم  (object sender, EventArgs e)
    {
    //دستورات
    }

        private void item2_Click(object sender, EventArgs e)
    {
    MessageBox.Show("تموم شد به همین راحتی");
    }

    تموم شد به همین راحتی امیدوارم مفید باشه
    سوالی داشتین بپرسین
    تشکر هم زدید ممنون میشم
    آخرین ویرایش به وسیله fool66 : دوشنبه 16 اردیبهشت 1392 در 03:51 صبح

تاپیک های مشابه

  1. آموزش: ایجاد منوی راست کلیک دلخواه
    نوشته شده توسط erfan_urchin در بخش C#‎‎
    پاسخ: 15
    آخرین پست: چهارشنبه 30 مرداد 1392, 09:46 صبح
  2. سوال: ساخت منوی راست کلیک برای مرورگر ها
    نوشته شده توسط Hamishebahar در بخش C#‎‎
    پاسخ: 0
    آخرین پست: جمعه 29 اردیبهشت 1391, 19:26 عصر
  3. ایجاد منوی راست کلیک در List Box
    نوشته شده توسط saeedvir در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: جمعه 10 مهر 1388, 16:57 عصر
  4. ایجاد گزینه ی جدید در منوی راست کلیک و بخش new
    نوشته شده توسط HadiVB در بخش ارزیابی نرم افزار
    پاسخ: 1
    آخرین پست: شنبه 20 تیر 1388, 15:59 عصر
  5. سوال: چطوری منوی راست کلیک ماوس برای کامپوننت فلش غیر فعال باشه؟
    نوشته شده توسط Mostafa_Sabeti در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 2
    آخرین پست: دوشنبه 11 آذر 1387, 10:23 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •