PDA

View Full Version : استفاده از یک کلید میانبر در همه جای برنامه



dottnett
پنج شنبه 11 دی 1393, 21:06 عصر
سلام دوستان

چطور میتونم از یک کلیدی مثل Ctrl+K که برای نمایش یک فرمه در همه جای یک پروژه استفاده کنم به طوری که وقتی این کلید در هر کجای برنامه که باشم و زده شد همون فرم نمایش داده بشه؟

dottnett
جمعه 12 دی 1393, 19:25 عصر
دوستان لطفا کمک کنیییییییییییید...ممنون

mohammad reza beizavi
جمعه 12 دی 1393, 19:45 عصر
درود بر تمام دوستان
این مرجع کاملترین و بهترین مرجع برای کلیدهای میانبر VS هست.

کاملترین مرجع کلیدهای میانبر در Visual studio (http://visualstudioshortcuts.com/2013/)

این لینک برای VS2013 هست که همون بالا میتونید 2012 یا 2014 رو هم ببینید.

dottnett
سه شنبه 23 دی 1393, 00:12 صبح
درود بر تمام دوستان
این مرجع کاملترین و بهترین مرجع برای کلیدهای میانبر VS هست.

کاملترین مرجع کلیدهای میانبر در Visual studio (http://visualstudioshortcuts.com/2013/)

این لینک برای VS2013 هست که همون بالا میتونید 2012 یا 2014 رو هم ببینید.

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

aminmousavi
سه شنبه 23 دی 1393, 00:47 صبح
سلام دوست عزیز .
http://barnamenevis.org/showthread.php?480785-%D8%AA%D9%88%DB%8C-%DB%8C%D9%87-%D9%81%D8%B1%D9%85-%D9%85%D8%AB%D9%84%D8%A7-%D8%A8%D8%A7-%D8%B2%D8%AF%D9%86-%DA%A9%D9%84%DB%8C%D8%AF-f2-%DA%A9%D8%A7%D8%B1-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%B1%D9%88-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%D8%A8%D8%AF%D9%85

plus
سه شنبه 23 دی 1393, 00:48 صبح
اگه شما فرمی دارین که همیشه بازه و Parent همه فرم هاست، مثل فرم Main،‌میتونید کلید ها رو در اون فرم Handle کنید.در اون فرم، متد ProcessCmdKey رو override کنید.

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == (Keys.Control | Keys.F)) {
MessageBox.Show("What the Ctrl+F?");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}

http://stackoverflow.com/questions/400113/best-way-to-implement-keyboard-shortcuts-in-a-windows-forms-application

dottnett
جمعه 26 دی 1393, 23:53 عصر
ممنون از راهنمایی دوستان
مشکلم حل شد

partovinia
سه شنبه 14 بهمن 1393, 11:19 صبح
سلام . دوستان این کد خیلی خوبه , ولی چون من مبتدی هستم , خیلی قسمت هاش رو متوجه نمی شم ...
می شه خواهش کنم یک بار خیلی کامل تمام قسمت های این کد رو توضیح بدین ...متشکرم

ghasem110deh
سه شنبه 14 بهمن 1393, 13:43 عصر
سلام به همه ...
دوستان من سوال تقریبا به موضوع ربط داره ، دیگه تاپیک نزدم !
------------------------------------------------------------------
من تو منوی (فرم اصلی) واسه چند زیرمنو کلید میانبر گذاشتم ... و واسه فرم سطح دسترسی قرار دادم که منوی اصلی غیر فعال میشه ؛
مشکل اینجاست که اگه از کلیدهای میانبر استفاده کنیم ، پنجره ای که کلید میانبر دارن باز میشه !!!
.
.
.
راهی هست که وقتی منوو غیر فعاله ، کلید میانبر هم غیر فعال شه ؟

sajadsobh
سه شنبه 14 بهمن 1393, 15:20 عصر
شما وقتی که یک آیتم از منو رو غیرفعال میکنید باید زیرمنوهای اون رو هم غیرفعال کنید. برای مثال من الان منوی File رو غیرفعال کردم که دو تا زیرمنو هم داره و واسه اونا shortcut گذاشتم:

fileToolStripMenuItem.Enabled = false;
foreach (ToolStripMenuItem TS in fileToolStripMenuItem.DropDownItems)
{
TS.Enabled = false;
}

اول File رو غیرفعال کردم و بعد تمام زیرمنوهای اون رو با دستور foreach غیرفعال کردم.

partovinia
چهارشنبه 15 بهمن 1393, 17:51 عصر
با سلام من این کد رو نوشتم ولی خطا می گیره , ولی زمانیکه به صورت مستقیم زیر منو ها رو غیر فعال می کنم جواب می گیرم . می شه نظرتون رو بدونم که اشکال از کجاست ؟
Invalid Cast Exception Was Unhanled
Unable to cast object of type 'System.Windows.Forms.ToolStripMenuItem' to type 'System.Windows.Forms.MenuStrip'.


Menustrip1.items["M0"].Enabled = false;
//M00.Enabled = false;
//M01.Enabled = false;
foreach (MenuStrip ms in M0.DropDownItems)
{
ms.Enabled = false;
}
menuStrip1.Items["M1"].Enabled = false;
//M10.Enabled = false;

sajadsobh
چهارشنبه 15 بهمن 1393, 19:15 عصر
اگه درست متوجه شده باشم. شما اسم منو ها و زیرمنوها رو به اینصورت تعیین کردی. برای مثال یه منو به اسم M0 داری زیرمنوهای اون رو بصورت M00, M01, M02, M03 , ... نامگذاری کردی. خب من فرض میکنم شما میخوای منوی M0 و زیرمنوهای اون رو غیرفعال کنی. کدی که من پیشنهاد میدم اینه:

M0.Enabled = false;
foreach (ToolStripMenuItem M0_Items in M0.DropDownItems)
{
M0_Items.Enabled = false;
}

partovinia
یک شنبه 19 بهمن 1393, 08:39 صبح
سلام .من دقیقا کدی رو که شما نوشتین رو نوشتم ولی باز هم خطایی رو که در بالا نوشتم رو دارم ...می شه بگین علت این خطا چیه؟
Invalid Cast Exception Was Unhanled

Unable to cast object of type 'System.Windows.Forms.ToolStripseprator' to type 'System.Windows.Forms.ToolstripMenuItem

mrbm_2007
یک شنبه 19 بهمن 1393, 13:23 عصر
سلام .من دقیقا کدی رو که شما نوشتین رو نوشتم ولی باز هم خطایی رو که در بالا نوشتم رو دارم ...می شه بگین علت این خطا چیه؟
Invalid Cast Exception Was Unhanled

Unable to cast object of type 'System.Windows.Forms.ToolStripseprator' to type 'System.Windows.Forms.ToolstripMenuItem




سلام
اینو امتحان کنید


M0.Enabled = false;
foreach (ToolStripItem m in M0.DropDownItems)
m.Enabled = false;

mrbm_2007
یک شنبه 19 بهمن 1393, 13:27 عصر
اگر نشانگر موس رو روی M0.DropDownItems نگه دارید می بینید نوع اون ToolStripItemCollection است. بنابرین میشه اعضای داخل اون رو به ToolStripItem کست کرد:خجالت: