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

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

  1. #1

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

    سلام دوستان. میخوایم تو این تاپیک ببینیم که چطوری میشه منوی راست کلیک دلخواه خودمون رو تو برنامه ایجاد کنیم
    اول من یه توضیحی بدم درباره منوی دلخواه (چون شاید بعضیا منظورمو نفهمیده باشن)
    شما اگه در Visual Studio راست کلیک کنید با این تصویر مواجه میشین

    همونطور که میبینین یک منویی باز میشه ، یک منویی که گزینه هایی مثل View Designer و Refactor و ... داره
    مایکروسافت اومده نسبت به نیاز برنامه نویس این آیتم هارو گذاشته. حالا ماهم میتونیم نسبت به نیاز کاربر تو برناممون یه سری آیتم ها تو منوی راست کلیک قرار بدیم
    تو پست های بعدی در مورد این کار بطور کامل توضیح میدم
    آخرین ویرایش به وسیله erfan_urchin : سه شنبه 20 فروردین 1392 در 21:59 عصر

  2. #2

    نقل قول: ایجاد منوی راست کلیک دلخواه

    ابتدا از منوی Toolbox کنترل Context menu strip رو به فرممون اضافه میکنیم و ابتدا باید دو مورد رو در نظر بگیریم
    1- باید ببینیم میخوایم راست کلیک برای کدوم قسمت از فرم باشه
    2- باید ببینیم در منوی راست کلیک به چه گزینه هایی نیاز داریم
    من میخوام راست کلیک در تکست باکس رو برای شما مثال بزنم و آموزش بدم
    پس یک تکست باکس هم به فرمتون اضافه کنید
    در Context menu strip در در قسمت type here گزینه هایی رو که میخواین اضافه کنید که من 2 گزینه Copy و Cut رو اضافه میکنم (طبق شکل زیر)


    حال در فرم لود معرفی میکنین که context menu strip مربوط به تکست باکس هستش
    private void Form1_Load(object sender, EventArgs e)
    {
    textBox1.ContextMenuStrip = new ContextMenuStrip();
    }

    تو مرحله بعدی میگی که وقتی رو تکست باکس راست کلیک کردی آیتم های درون contextMenuStrip رو نمایش بده و برای این کار در رویداد textBox1_MouseDown کد زیر رو مینویسین
    private void textBox1_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Right)
    contextMenuStrip1.Show(textBox1, e.Location);
    }

    تو مرحله بعد رو ی هریک از آیتم های copy و cut کلیک میکنی تا رویدادهای کلیک آن ها باز شوند و کد های مربوط به کاری که میخوان انجام بدن رو مینویسین
    private void copyToolStripMenuItem_Click(object sender, EventArgs e)
    {
    textBox1.Copy();
    }

    private void cutToolStripMenuItem_Click(object sender, EventArgs e)
    {
    textBox1.Cut();
    }

    حالا اگه روی تکست باکس راست کلیک کنید منوی مورد نظر رو میبینید
    آخرین ویرایش به وسیله erfan_urchin : سه شنبه 01 مرداد 1392 در 16:09 عصر

  3. #3

    نقل قول: ایجاد منوی راست کلیک دلخواه

    خب تا اینجا یاد گزفتیم چجوری منوی راست کلیک مورد نظرمون رو بسازیم
    حالا میپردازیم به رفع اشکالات برنامه
    همونطور که میدونید بعضی از آیتم ها بعضی اوقات باید فعال و بعضی اوقات باید غیرفعال باشن
    مثلا تو این منویی که ماساختیم لازم داریم که وقتی که کاربر تکستی رو انتخاب کرد گزینه های Copy و Cut فعال بشن و اگر تکستی رو انتخاب نکردن با صحنه زیر مواجه بشن

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

    برای اینجور موارد که لازم داریم گزینه ای در مواقعی غیر فعال باشه باید کدها رو در رویداد contextMenuStrip1_Opening بنویسیم
    private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
    {
    copyToolStripMenuItem.Enabled = textBox1.SelectionLength > 0;
    cutToolStripMenuItem.Enabled = textBox1.SelectionLength > 0;
    }

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

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


    به همین راحتی میتونیم منوی راست کلیک مورد نظرمون رو بسازیم. امیدوارم این آموزش بدردتون بخوره
    تو پست بعدی برنامه کامل رو براتون آپلود میکنم تا اگه کسی لازم داشت دانلود کنه
    آخرین ویرایش به وسیله erfan_urchin : جمعه 23 فروردین 1392 در 15:51 عصر

  4. #4

    نقل قول: ایجاد منوی راست کلیک دلخواه

    این هم برنامه کامل
    فایل های ضمیمه فایل های ضمیمه

  5. #5

    نقل قول: ایجاد منوی راست کلیک دلخواه

    دوستان یه نکته رو یادم رفت بگم
    تو پست شماره 2 گفتیم برای معرفی این که context menu strip مربوط به تکست باکس هست از کد زیر استفاده کردیم
    private void Form1_Load(object sender, EventArgs e)
    {
    textBox1.ContextMenuStrip = new ContextMenuStrip();
    }

    برای معرفی بقیه کنترل ها context menu strip هم فقط کافیه اول ، اسم کنترل رو بنویسین
    مثلا اگه میخواین برای button باشه مینویسین
    button1.ContextMenuStrip = new ContextMenuStrip();

    یا برای این که وقتی روی فرم کلیک شد منوی مورد نظر نشون بده از کد زیر استفاده میکنیم
    this.ContextMenuStrip = new ContextMenuStrip();

    فقط حواستون باشه برای فرم حتما از this استفاده کنید و از کدایی مثل کد زیر استفاده نکنید چون کار نمیکنه
    Form1 f1 = new Form1();
    f1.ContextMenuStrip = new ContextMenuStrip();
    آخرین ویرایش به وسیله erfan_urchin : سه شنبه 01 مرداد 1392 در 16:10 عصر

  6. #6
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    نقل قول: ایجاد منوی راست کلیک دلخواه

    درود.

    با تشکر فراوان بخاطر آموزش خوبتون.

    متاسفانه این برنامه اجرا نمیشه روی سیستمم.
    من هنوز از ویژوال استدیو 2010 استفاده میکنم.میشه نسخه دات نت 4 رو هم بذارین.

    ممنونم

  7. #7
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: ایجاد منوی راست کلیک دلخواه

    نقل قول نوشته شده توسط f.beigirad مشاهده تاپیک
    درود.

    با تشکر فراوان بخاطر آموزش خوبتون.

    متاسفانه این برنامه اجرا نمیشه روی سیستمم.
    من هنوز از ویژوال استدیو 2010 استفاده میکنم.میشه نسخه دات نت 4 رو هم بذارین.

    ممنونم
    یک سری موارد هست که بهتره قبل از شروع برنامه نویسی یاد گرفته شوند
    برای باز کردن این پروژه ها فایل .csproj که در پوشه ی کناری قرار داره رو می تونید باز کنید و بعد روی پروژه sln قبلی سیو کنید
    به همین روش بدون داشتن vs2012 سیو کردم براتون
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    نقل قول: ایجاد منوی راست کلیک دلخواه

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    یک سری موارد هست که بهتره قبل از شروع برنامه نویسی یاد گرفته شوند
    برای باز کردن این پروژه ها فایل .csproj که در پوشه ی کناری قرار داره رو می تونید باز کنید و بعد روی پروژه sln قبلی سیو کنید
    به همین روش بدون داشتن vs2012 سیو کردم براتون
    حرف شما کاملا درسته.
    ولی این نکات ریز رو جایی ننوشتن.کتابی نیست.
    تا هم بهشون برخورد نکنم یاد نمیگیرم.

    در کل ممنون بخاطر آموزشتون

  9. #9

    نقل قول: ایجاد منوی راست کلیک دلخواه

    نقل قول نوشته شده توسط f.beigirad مشاهده تاپیک
    درود.

    با تشکر فراوان بخاطر آموزش خوبتون.

    متاسفانه این برنامه اجرا نمیشه روی سیستمم.
    من هنوز از ویژوال استدیو 2010 استفاده میکنم.میشه نسخه دات نت 4 رو هم بذارین.

    ممنونم
    دست عزیز ، نمیدونم چرا اما فقط بعضیا این مشکلو دارن!!! من برای بعضی ها که از 2010 استفاده میکردن هم اینو فرستادم و تونستن باز کنن اما یه نفر بود که مشکل شمارو داشت و من بخطر همین حتی با دات نت 3.5 برنامه رو براش نوشتم اما بازم براش باز نکرد
    نمیدونم چرا اینجوریه ، حالا من این برنامه رو با همون دات نت 4 میزارم براتون ببینید باز میشه؟؟؟
    بفرمایید اینم لینک
    http://uploadtak.com/images/i911_Win...msApplicat.rar

  10. #10
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    نقل قول: ایجاد منوی راست کلیک دلخواه

    دست عزیز ، نمیدونم چرا اما فقط بعضیا این مشکلو دارن!!! من برای بعضی ها که از 2010 استفاده میکردن هم اینو فرستادم و تونستن باز کنن اما یه نفر بود که مشکل شمارو داشت و من بخطر همین حتی با دات نت 3.5 برنامه رو براش نوشتم اما بازم براش باز نکرد
    نمیدونم چرا اینجوریه ، حالا من این برنامه رو با همون دات نت 4 میزارم براتون ببینید باز میشه؟؟؟
    بفرمایید اینم لینک
    http://uploadtak.com/images/i911_Win...msApplicat.rar
    راه حل آقای danialafshari کارساز بود.

  11. #11
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    نقل قول: ایجاد منوی راست کلیک دلخواه

    نقل قول نوشته شده توسط erfan_urchin مشاهده تاپیک
    ابتدا از منوی Toolbox کنترل Context menu strip رو به فرممون اضافه میکنیم و ابتدا باید دو مورد رو در نظر بگیریم
    1- باید ببینیم میخوایم راست کلیک برای کدوم قسمت از فرم باشه
    2- باید ببینیم در منوی راست کلیک به چه گزینه هایی نیاز داریم
    من میخوام راست کلیک در تکست باکس رو برای شما مثال بزنم و آموزش بدم
    پس یک تکست باکس هم به فرمتون اضافه کنید
    در Context menu strip در در قسمت type here گزینه هایی رو که میخواین اضافه کنید که من 2 گزینه Copy و Cut رو اضافه میکنم (طبق شکل زیر)


    حال در فرم لود معرفی میکنین که context menu strip مربوط به تکست باکس هستش
    private void Form1_Load(object sender, EventArgs e)
    {
    textBox1.ContextMenuStrip = contextMenuStrip1;
    }

    تو مرحله بعدی میگی که وقتی رو تکست باکس راست کلیک کردی آیتم های درون contextMenuStrip رو نمایش بده و برای این کار در رویداد textBox1_MouseDown کد زیر رو مینویسین
    private void textBox1_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Right)
    contextMenuStrip1.Show(textBox1, e.Location);
    }

    تو مرحله بعد رو ی هریک از آیتم های copy و cut کلیک میکنی تا رویدادهای کلیک آن ها باز شوند و کد های مربوط به کاری که میخوان انجام بدن رو مینویسین
    private void copyToolStripMenuItem_Click(object sender, EventArgs e)
    {
    textBox1.Copy();
    }

    private void cutToolStripMenuItem_Click(object sender, EventArgs e)
    {
    textBox1.Cut();
    }

    حالا اگه روی تکست باکس راست کلیک کنید منوی مورد نظر رو میبینید

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

    با قرار دادن قسمت اول کد بالا :
    private void Form1_Load(object sender, EventArgs e)
    {
    textBox1.ContextMenuStrip = contextMenuStrip1;
    }


    دیگه مهم نیست که شما قسمت بعدی رو بنویسید یا نه.خود به خود وقتی کلیک راست میکنید منورو نشون میده.منظورم این کده:
    private void textBox1_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Right)
    contextMenuStrip1.Show(textBox1, e.Location);
    }


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


    با خودتون میگید چه موضوع بیخودیو مطرح کردما!!

    ولی دوستان ، من از تکس باکسهایی که خودم سفارشی کردم استفاده میکنم.و نمایش این contextMenuStrip هم یکی از پروپرتیهاشه.که برای کلیک راست این منورو نشون بده یا نه.
    چکار کنم که برای نمایش این منو کد قسمت دوم اجرا شه.نه اینکه با یه نسبت دادن کار خودشو انجام بده
    با تشکر
    آخرین ویرایش به وسیله f.beigirad : سه شنبه 01 مرداد 1392 در 00:21 صبح

  12. #12
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    نقل قول: ایجاد منوی راست کلیک دلخواه

    جوابشم خودم کشف کردم.میذارم برا دوستان :

    باید بگم که اصلا نیازی به کد
    textBox1.ContextMenuStrip = contextMenuStrip1;

    نیست.چرا که در کد:

    private void textBox1_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == MouseButtons.Right)
    contextMenuStrip1.Show(textBox1, e.Location);
    }


    ما این منو رو به تکس باکس نسبت میدیم.

    اینجا یک مشکل ایجاد میشه : "منوی کلیک راست خود ویندوز"
    این مشکل هم اینطور برطرف میکنیم:
    textBox1.ContextMenuStrip = new ContextMenuStrip();

    با اینکار دیگه از منوی خود ویندوز خبری نیست.
    منبع
    جا داره از کاربر erfan_urchinکه این آموزش رو تدارک دیدن تشکر کنم.و درخواست کنم پست 2 رو ویرایش کنن.

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

    نقل قول: ایجاد منوی راست کلیک دلخواه

    میشه نحوه گذاشتن ایکونشون رو بزاری

  14. #14

    نقل قول: ایجاد منوی راست کلیک دلخواه

    جا داره از کاربر erfan_urchinکه این آموزش رو تدارک دیدن تشکر کنم.و درخواست کنم پست 2 رو ویرایش کنن.
    ممنون دوست عزیز از نکته ای که گفتین. پست 2 رو ویرایش کردم

  15. #15

    نقل قول: ایجاد منوی راست کلیک دلخواه

    نقل قول نوشته شده توسط fool66 مشاهده تاپیک
    میشه نحوه گذاشتن ایکونشون رو بزاری
    برای گذاشتن آیکون کنار هر کدوم از گزینه ها هم باید مراحل زیر رو طی کنید

    1- روی گزینه مورد نظر کلیک کنید
    مرحله1

    2- در پراپرتی های آن گزینه Image را انتخاب کنید
    مرحله2

    3- عکس مورد نظر را انتخاب کنید
    تذکر: دقت کنید که فقط عکس هایی با پسوندهای jpg , jpeg , bmp , png , gif , wmf رو میتونین انتخاب کنید و آیکون (ico.*) نمیتونید بزارید
    مرحله3

    4- و در مرحله آخر OK رو انتخاب کنید و می بینید که عکس مورد نظر کنار گزینه موردنظرتون قرار داده شده
    مرحله 1-4
    مرحله 2-4
    مرحله 3-4

  16. #16

    نقل قول: ایجاد منوی راست کلیک دلخواه

    میشه در مورد برنامه ای که راست کلیک و چپ کلیک را فعال کند هم راهنمایی کنید یعنی اگه مثلا یه متغیری مقدارش 1 بود چپ کلیک انجام بشه اگه 0 بود عمل راست کلیک انجام بشه

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

  1. کمک::ایجاد ایتم جدید در منوی راست کلیک ویندوز
    نوشته شده توسط barnamenevisjavan در بخش VB.NET
    پاسخ: 1
    آخرین پست: سه شنبه 10 آبان 1390, 22:57 عصر
  2. ایجاد منوی راست کلیک در List Box
    نوشته شده توسط saeedvir در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: جمعه 10 مهر 1388, 16:57 عصر
  3. ایجاد گزینه ی جدید در منوی راست کلیک و بخش new
    نوشته شده توسط HadiVB در بخش ارزیابی نرم افزار
    پاسخ: 1
    آخرین پست: شنبه 20 تیر 1388, 15:59 عصر
  4. منوی راست کلیک
    نوشته شده توسط phantasm در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: سه شنبه 24 تیر 1382, 10:40 صبح

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

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