CSHARPWINDOWSFORM Telegram 242
شرح اداة

ContextMenuStrip Control


يوفر عنصر التحكم ContextMenuStrip وظائف قوائم السياق و تعرف قائمة السياق أيضًا بالقائمة المنبثقة. تظهر قائمة السياق عند النقر بزر الماوس الأيمن على نموذج أو على عنصر تحكم.

إنشاء قائمة سياق

لإنشاء عنصر تحكم ContextMenuStrip في وقت التصميم ، ما عليك سوى سحب عنصر تحكم ContextMenuStrip وإفلاته من Toolbox إلى نموذج في Visual Studio. بعد سحب وإفلات ContextMenuStrip في نموذج ، تتم إضافة ContextMenuStrip1 إلى النموذج وتبدو بالشكل 1. بمجرد وجود ContextMenuStrip في النموذج ، يمكنك إضافة عناصر القائمة وتعيين خصائصها وأحداثها. إذا لاحظت في الشكل 1 ، فإن العنصر الأول من ContextMenuStrip يحتوي على نص اكتب هنا. يمكنك بالفعل البدء في الكتابة هنا


إذا لاحظت في الشكل 2 ، اكتب اثنين من عناصر القائمة. بمجرد تحديد عنصر قائمة ، سترى تلقائيًا مناطق عناصر القائمة الفرعية قابلة للتحرير ويمكنك الاستمرار في الوصول إلى العديد من المستويات التي تريدها. أقوم بإضافة عنصري قائمة وعنصري قائمة فرعية.




يمكننا أيضًا إنشاء قوائم السياق في وقت التشغيل. على الرغم من أنه يمكنك إنشاء ContextMenuStrip في وقت التشغيل ، فمن المستحسن إنشاء وقت التصميم ثم تعيين الخصائص والأساليب في وقت التشغيل.

الخطوة الأولى لإنشاء ContextMenuStrip ديناميكي هي إنشاء مثيل لفئة ContextMenuStrip. ينشئ مقتطف التعليمات البرمجية التالي كائن تحكم ContextMenuStrip.
ContextMenuStrip ContextMenuStrip1 = new ContextMenuStrip();

في الخطوة التالية ، يمكنك تعيين خصائص عنصر تحكم ContextMenuStrip. يقوم مقتطف التعليمات البرمجية التالي بتعيين خصائص الخلفية ولون المقدمة والنص والاسم ونوع الخط لـ ContextMenuStrip.
ContextMenuStrip1.BackColor = Color.OrangeRed;

ContextMenuStrip1.ForeColor = Color.Black;

ContextMenuStrip1.Text = "File Menu";

ContextMenuStrip1.Font = new Font("Georgia", 16);

الان نقوم بإضافة عناصر الى قائمة السياق لكي تظهر عند الضغط بزر الماوس الأيمن

ContextMenuStrip1.Items.Add("New");
ContextMenuStrip1.Items.Add("Open");
ContextMenuStrip1.Items.Add("Exit");
بمجرد أن يصبح عنصر التحكم ContextMenuStrip جاهزًا بخصائصه ، فإن الخطوة التالية هي إضافة ContextMenuStrip إلى نموذج. للقيام بذلك ، قم أولاً بتعيين خاصية ContextMenuStrip ثم استخدم استدعاء الأسلوب Show لعرض ContextMenuStrip.

يضيف مقتطف التعليمات البرمجية التالي عنصر تحكم ContextMenuStrip إلى النموذج الحالي ويعرضه عند النقر بزر الماوس الأيمن فوق النموذج.
this.ContextMenuStrip = ContextMenuStrip1;

ContextMenuStrip1.Show();



الان بعد اضافه قائمة السياق للفورم ستظهر عند الضغط بزر الماوس الأيمن على الفورم بهذا الشكل




الان عند ما تقوم بالضغط على أي عنصر من عناصر القائمة لن يحدث شيء لانهو لم يتم برمجة احداث هذه الأداة
الكود التالي يقوم بإضافة حدث ItemClicked

ContextMenuStrip1.ItemClicked += new ToolStripItemClickedEventHandler(MYToolStripMenuItem);

بعد ان تقوم بكتابة السطر السابق قم بالضغط على Ctrl+.
واختار Generate Method لكي يتم توليد الدالة تلقائياً
ستبدو الدالة التي تم إنشائها كالتالي
private void MYToolStripMenuItem(object sender, ToolStripItemClickedEventArgs e)
{
throw new NotImplementedException();
}

الان انت لاتعرف لأي عنصر قمت بعمل دالة الحدث هذه ؟

طبعاً الحدث هذا سوف يكون لجميع العناصر قد تستغرب مما اقصد
سوف نستخدم الخاصية ClickedItem لكي يتم تحديد أي العناصر تم الضغط عليه
تابع الشرح وسوف تفهم اكثر
قم بحذف السطر الموجود بالدالة واكتب الاسطر التاليه

private void MyToolStripMenuItem(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text=="Open")
{
MessageBox.Show("open");
}
if (e.ClickedItem.Text == "New")
{
MessageBox.Show("new");
}
if (e.ClickedItem.Text == "Exit")
{
this.Close();
}
}

هل استوعبت كيف سيتم تحديد أي العناصر تم الضغط عليه وسوف يتم تنفيذ الشرط المتوافق مع النقرة

ويوجد طريقة أخرى لانشاء عناصر للقائمة
ToolStripMenuItem item = new ToolStripMenuItem("Delete") { Image =Image.FromFile(@"مسار الصورة"), };



tgoop.com/CsharpWindowsForm/242
Create:
Last Update:

شرح اداة

ContextMenuStrip Control


يوفر عنصر التحكم ContextMenuStrip وظائف قوائم السياق و تعرف قائمة السياق أيضًا بالقائمة المنبثقة. تظهر قائمة السياق عند النقر بزر الماوس الأيمن على نموذج أو على عنصر تحكم.

إنشاء قائمة سياق

لإنشاء عنصر تحكم ContextMenuStrip في وقت التصميم ، ما عليك سوى سحب عنصر تحكم ContextMenuStrip وإفلاته من Toolbox إلى نموذج في Visual Studio. بعد سحب وإفلات ContextMenuStrip في نموذج ، تتم إضافة ContextMenuStrip1 إلى النموذج وتبدو بالشكل 1. بمجرد وجود ContextMenuStrip في النموذج ، يمكنك إضافة عناصر القائمة وتعيين خصائصها وأحداثها. إذا لاحظت في الشكل 1 ، فإن العنصر الأول من ContextMenuStrip يحتوي على نص اكتب هنا. يمكنك بالفعل البدء في الكتابة هنا


إذا لاحظت في الشكل 2 ، اكتب اثنين من عناصر القائمة. بمجرد تحديد عنصر قائمة ، سترى تلقائيًا مناطق عناصر القائمة الفرعية قابلة للتحرير ويمكنك الاستمرار في الوصول إلى العديد من المستويات التي تريدها. أقوم بإضافة عنصري قائمة وعنصري قائمة فرعية.




يمكننا أيضًا إنشاء قوائم السياق في وقت التشغيل. على الرغم من أنه يمكنك إنشاء ContextMenuStrip في وقت التشغيل ، فمن المستحسن إنشاء وقت التصميم ثم تعيين الخصائص والأساليب في وقت التشغيل.

الخطوة الأولى لإنشاء ContextMenuStrip ديناميكي هي إنشاء مثيل لفئة ContextMenuStrip. ينشئ مقتطف التعليمات البرمجية التالي كائن تحكم ContextMenuStrip.
ContextMenuStrip ContextMenuStrip1 = new ContextMenuStrip();

في الخطوة التالية ، يمكنك تعيين خصائص عنصر تحكم ContextMenuStrip. يقوم مقتطف التعليمات البرمجية التالي بتعيين خصائص الخلفية ولون المقدمة والنص والاسم ونوع الخط لـ ContextMenuStrip.
ContextMenuStrip1.BackColor = Color.OrangeRed;

ContextMenuStrip1.ForeColor = Color.Black;

ContextMenuStrip1.Text = "File Menu";

ContextMenuStrip1.Font = new Font("Georgia", 16);

الان نقوم بإضافة عناصر الى قائمة السياق لكي تظهر عند الضغط بزر الماوس الأيمن

ContextMenuStrip1.Items.Add("New");
ContextMenuStrip1.Items.Add("Open");
ContextMenuStrip1.Items.Add("Exit");
بمجرد أن يصبح عنصر التحكم ContextMenuStrip جاهزًا بخصائصه ، فإن الخطوة التالية هي إضافة ContextMenuStrip إلى نموذج. للقيام بذلك ، قم أولاً بتعيين خاصية ContextMenuStrip ثم استخدم استدعاء الأسلوب Show لعرض ContextMenuStrip.

يضيف مقتطف التعليمات البرمجية التالي عنصر تحكم ContextMenuStrip إلى النموذج الحالي ويعرضه عند النقر بزر الماوس الأيمن فوق النموذج.
this.ContextMenuStrip = ContextMenuStrip1;

ContextMenuStrip1.Show();



الان بعد اضافه قائمة السياق للفورم ستظهر عند الضغط بزر الماوس الأيمن على الفورم بهذا الشكل




الان عند ما تقوم بالضغط على أي عنصر من عناصر القائمة لن يحدث شيء لانهو لم يتم برمجة احداث هذه الأداة
الكود التالي يقوم بإضافة حدث ItemClicked

ContextMenuStrip1.ItemClicked += new ToolStripItemClickedEventHandler(MYToolStripMenuItem);

بعد ان تقوم بكتابة السطر السابق قم بالضغط على Ctrl+.
واختار Generate Method لكي يتم توليد الدالة تلقائياً
ستبدو الدالة التي تم إنشائها كالتالي
private void MYToolStripMenuItem(object sender, ToolStripItemClickedEventArgs e)
{
throw new NotImplementedException();
}

الان انت لاتعرف لأي عنصر قمت بعمل دالة الحدث هذه ؟

طبعاً الحدث هذا سوف يكون لجميع العناصر قد تستغرب مما اقصد
سوف نستخدم الخاصية ClickedItem لكي يتم تحديد أي العناصر تم الضغط عليه
تابع الشرح وسوف تفهم اكثر
قم بحذف السطر الموجود بالدالة واكتب الاسطر التاليه

private void MyToolStripMenuItem(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text=="Open")
{
MessageBox.Show("open");
}
if (e.ClickedItem.Text == "New")
{
MessageBox.Show("new");
}
if (e.ClickedItem.Text == "Exit")
{
this.Close();
}
}

هل استوعبت كيف سيتم تحديد أي العناصر تم الضغط عليه وسوف يتم تنفيذ الشرط المتوافق مع النقرة

ويوجد طريقة أخرى لانشاء عناصر للقائمة
ToolStripMenuItem item = new ToolStripMenuItem("Delete") { Image =Image.FromFile(@"مسار الصورة"), };

BY برمجة تطبيقات الويندوز C# Programming


Share with your friend now:
tgoop.com/CsharpWindowsForm/242

View MORE
Open in Telegram


Telegram News

Date: |

While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. On Tuesday, some local media outlets included Sing Tao Daily cited sources as saying the Hong Kong government was considering restricting access to Telegram. Privacy Commissioner for Personal Data Ada Chung told to the Legislative Council on Monday that government officials, police and lawmakers remain the targets of “doxxing” despite a privacy law amendment last year that criminalised the malicious disclosure of personal information. Add up to 50 administrators As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces. Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image.
from us


Telegram برمجة تطبيقات الويندوز C# Programming
FROM American