حيوي إضافة عناصر إلى قائمة سياق ووضع فوق العمل

StackOverflow https://stackoverflow.com/questions/225394

  •  03-07-2019
  •  | 
  •  

سؤال

ولدي قائمة من السلاسل التي يتم إعادة كل 5 ثوان. أريد أن إنشاء قائمة سياق ووضع بنودها حيوي باستخدام هذه القائمة. والمشكلة هي أن ليس لدي حتى فكرة عن كيفية القيام بذلك وإدارة انقر العمل لكل بند ولدت (التي يجب أن تستخدم نفس الأسلوب مع المعلمة مختلفة تنفيذ DoSomething ( "ITEM_NAME")).

وكيف أفعل هذا؟

وشكرا على وقتك. مع أطيب التحيات.

هل كانت مفيدة؟

المحلول

وهكذا، يمكنك مسح العناصر من قائمة السياق مع:

myContextMenuStrip.Items.Clear();

ويمكنك إضافة عنصر عن طريق الاتصال:

myContextMenuStrip.Items.Add(myString);

وقائمة السياق قد حدث ItemClicked. معالج الخاص بك يمكن أن تبدو مثل ذلك:

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    DoSomething(e.ClickedItem.Text);
}

ويبدو أن العمل OK بالنسبة لي. اسمحوا لي أن أعرف ما إذا كنت أسيء فهمها سؤالك.

نصائح أخرى

وثمة بديل آخر باستخدام كائن ToolStripMenuItem:

//////////// Create a new "ToolStripMenuItem" object:
ToolStripMenuItem newMenuItem= new ToolStripMenuItem();

//////////// Set a name, for identification purposes:
newMenuItem.Name = "nameOfMenuItem";

//////////// Sets the text that will appear in the new context menu option:
newMenuItem.Text = "This is another option!";

//////////// Add this new item to your context menu:
myContextMenuStrip.Items.Add(newMenuItem);

و
داخل الحدث ItemClicked من myContextMenuStrip الخاص بك، يمكنك التحقق من الخيار الذي تم اختياره (<م> يستند إلى خاصية اسم عنصر القائمة )

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    ToolStripItem item = e.ClickedItem;

    //////////// This will show "nameOfMenuItem":
    MessageBox.Show(item.Name, "And the clicked option is...");
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top