2013-04-03 14 views
5

Benim winform üzerinde Ben her düğme tıklattığınızda dinamik olarak oluşturulan usercontrols var. Çalışma zamanında, sadece bir kez tıklayarak ve sonra ctrl düğmesine basılarak onları seçebilmeyi istiyorum. Yapmayı başardım ama sadece bir tane için. Hepsine nasıl çalışabilirim? Benim kodum:multi select ctrl + düğmesi çalışma zamanında tıklayın

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

sizin kullanıcı kontrolü "select" ne anlama gelir? –

+0

Onlara tıklandığında kontroller seçilmiyor mu? –

+1

@lazyberezovsky 'Kontroller" odak "al, doğru mu? Ama her seferinde sadece bir tane. –

cevap

2

Seçtiğiniz kontrollerin listesine sahip olabilirsiniz. Sadece kontrol tıklandığında Ctrl basılı olup olmadığını belirlemek ve (kontrol önce eklenmişse de kaldırabilirsiniz) Seçilen listeye eklemek:

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); 
} 
İlgili konular