2011-09-20 13 views
6

Tôi đang cố gắng thêm menu ngữ cảnh vào hộp danh sách khi bạn nhấp chuột phải vào một mục.Hộp danh sách WinForms Nhấp chuột phải

Tôi thậm chí không chắc liệu chức năng nhấp chuột phải có hoạt động đúng hay không.

Đây là mã:

private void lstSource_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Right) 
    { 
     Console.WriteLine("Right Click"); 
    } 
} 

Không có gì in ra cửa sổ Console. Tui bỏ lỡ điều gì vậy?

Cảm ơn.

+0

Ứng dụng của bạn có bảng điều khiển không? Có lẽ cố gắng để hiển thị một MessageBox thay thế? – AndrewC

Trả lời

10

Hãy chắc chắn rằng bạn dây sự kiện này lên (và ListBox được kích hoạt):

private void Form1_Load(object sender, EventArgs e) 
{ 
    listBox1.MouseDown += new MouseEventHandler(listBox1_MouseDown); 
} 

void listBox1_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Right) 
    { 
    MessageBox.Show("Right Click"); 
    } 
} 

Bạn cũng có thể có dây thiết kế lên sự kiện này cho bạn bằng cách chọn ListBox và kích đúp vào sự kiện MouseDown trong cửa sổ Properties (nhấp vào tia chớp).

+0

Hoàn hảo. Cảm ơn bạn! – gberg927

2

Console.WriteLine() phương pháp sẽ không hiển thị bất kỳ thứ gì trên GUI. Sử dụng MessageBox.Show("Right Click");

private void lstSource_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Right) 
    { 
     MessageBox.Show("Right Click"); 
    } 
} 

EDIT: Hãy chắc chắn rằng handler được với MouseDown sự kiện hay không.

+0

Tôi đã cố gắng sửa chữa của bạn và tôi không có gì vẫn xảy ra. – gberg927