2008-10-22 37 views
9

Tôi có một danh sách các chuỗi được tạo lại sau mỗi 5 giây. Tôi muốn tạo một Menu ngữ cảnh và thiết lập các mục của nó một cách linh hoạt bằng cách sử dụng danh sách này. Vấn đề là tôi thậm chí không có một đầu mối làm thế nào để làm điều đó và quản lý các hành động Click cho mỗi mục tạo ra (mà nên sử dụng cùng một phương pháp với tham số DoSomething khác nhau ("item_name")).Tự động thêm các mục vào Trình đơn ngữ cảnh & bộ Nhấp vào hành động

Tôi nên làm như thế nào?

Cảm ơn thời gian của bạn. Trân trọng.

Trả lời

19

Vì vậy, bạn có thể xóa các mục từ menu ngữ cảnh với:

myContextMenuStrip.Items.Clear(); 

Bạn có thể thêm một mục bằng cách gọi:

myContextMenuStrip.Items.Add(myString); 

Các menu ngữ cảnh có một sự kiện ItemClicked. Người xử lý của bạn có thể trông giống như vậy:

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

Dường như hoạt động OK cho tôi. Hãy cho tôi biết nếu tôi hiểu lầm câu hỏi của bạn.

+0

Cảm ơn! Đó là những gì tôi đang tìm kiếm –

+0

Vâng, điều này cho biết thêm một chuỗi ... Làm thế nào sẽ đi về thêm một MenuItem? Điều đó sẽ ràng buộc eventhandlers dễ dàng hơn –

1

Một thay thế sử dụng một đối tượng 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); 


Bên trong sự kiện ItemClicked của myContextMenuStrip của bạn, bạn có thể kiểm tra tùy chọn đã được chọn (dựa trên tên thuộc tính của menu item)

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..."); 
} 
Các vấn đề liên quan