2013-04-03 48 views
5

Trên biểu mẫu của tôi, tôi có các liên kết người dùng được tạo động tại mỗi lần nhấp nút. Tôi muốn trong thời gian chạy để có thể chọn chúng chỉ bằng cách nhấp một lần vào chúng và sau đó nhấn nút ctrl. Tôi đã xoay sở để làm điều đó, nhưng chỉ dành cho một người. Làm thế nào tôi có thể làm cho tất cả chúng? Mã của tôi:chọn nhiều ctrl + nút bấm tại thời điểm chạy

private void TControl_Click(object sender, EventArgs e) //TControl is the name of usercontrol 
    { 
     TControl tc = new TControl(); 
     Control ctrl = sender as Control; 
     if (ctrl != null) 
     tc = ctrl;//it doesn't work like this. 
+1

Điều gì có nghĩa là "chọn" điều khiển người dùng của bạn? –

+0

Điều khiển không được chọn khi bạn nhấp vào chúng? –

+1

@lazyberezovsky 'Kiểm soát nhận được" tập trung ", phải không? Nhưng chỉ mỗi lần một. –

Trả lời

2

Bạn có thể có danh sách các điều khiển được chọn. Chỉ cần xác định xem Ctrl đã được nhấn khi bạn nhấp vào kiểm soát và thêm nó vào danh sách đã chọn (bạn cũng có thể xóa nó nếu điều khiển được thêm trước):

List<TControl> selectedControls = new List<TControl>(); 

private void TControl_Click(object sender, EventArgs e) 
{ 
    if ((ModifierKeys & Keys.Control) == 0) 
     return; 

    TControl tc = (TControl)sender; 
    if (selectedControls.Contains(tc)) 
     return; // you can remove control here 

    selectedControls.Add(tc); 
} 
Các vấn đề liên quan