2013-04-03 10 views
5

मेरे विनफॉर्म पर मेरे पास उपयोगकर्ता नियंत्रण हैं जो प्रत्येक बटन क्लिक पर गतिशील रूप से बनाए जाते हैं। मैं रनटाइम पर बस उन पर क्लिक करके उन्हें चुनने में सक्षम होना चाहता हूं और फिर Ctrl बटन दबाकर। मैं इसे करने में कामयाब रहा, लेकिन सिर्फ एक के लिए। मैं उन सभी के लिए कैसे काम कर सकता हूं? मेरा कोड:मल्टी सिलेक्ट ctrl + बटन रनटाइम पर क्लिक करें

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

क्या यह अपने उपयोगकर्ता नियंत्रण "का चयन करें" का मतलब क्या है? –

+0

जब आप उन पर क्लिक करते हैं तो नियंत्रण चयनित नहीं होते हैं? –

+1

@lazyberezovsky 'नियंत्रण' प्राप्त करें "ध्यान", है ना? लेकिन एक समय में केवल एक ही। –

उत्तर

2

आपके पास चयनित नियंत्रणों की सूची हो सकती है। बस का निर्धारण करता है, तो Ctrl दबाया गया था जब आप नियंत्रण पर क्लिक किया और चयनित सूची में जोड़ने (आप भी इसे हटा सकते हैं, तो नियंत्रण से पहले जोड़ा गया है):

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); 
} 
संबंधित मुद्दे