2010-03-09 12 views
6

मुझे एक संदर्भ मेनू होना चाहिए, अगर एक आइटम वास्तव में Winforms C# अनुप्रयोग में किसी सूची बॉक्स में चुना जाता है।यदि कुछ भी नहीं चुना गया है तो संदर्भ मेनू न दिखाएं

वर्तमान में, यदि मैं सही तरीके से दायाँ क्लिक किया गया है, तो मैं एक आइटम का चयन करने में सक्षम हूं, और यदि कुछ भी नहीं चुना गया है, तो मैं दायां क्लिक मेनू अक्षम कर सकता हूं, हालांकि, मैं मेनू को भी दिखाना नहीं चाहता हूं।

यह कैसे पूरा किया जा सकता है?

private void genPassMenu_Opening(object sender, CancelEventArgs e) 
    { 
     genPassMenu.Enabled = lstPasswords.SelectedIndex > 0; 
     genPassMenu.Visible = lstPasswords.SelectedIndex > 0; 

    } 

मैं अपने दम पर उन स्थितियों के दोनों की कोशिश की, और यह केवल सक्षम के लिए काम करता है।
शायद ओपनिंग चुनने के लिए सही घटना नहीं है?
टीएक्स

उत्तर

11

इस प्रयास करें:

private void genPassMenu_Opening(object sender, CancelEventArgs e) 
{ 
    //if (lstPasswords.SelectedIndex == -1) e.Cancel = true; 
    e.Cancel = (lstPasswords.SelectedIndex == -1); 
} 
+0

यह सही दृष्टिकोण है। +1 – MadBoy

4

आसान,

private void genPassMenu_Opening(object sender, CancelEventArgs e) 
    { 
     e.Cancel = (lstPasswords.SelectedIndex == 0); 

    } 
0

मैं आम तौर पर विशेष जीयूआई तत्व यह है कि चयन किया जाता है के लिए अपने औचित्य के अनुसार प्रत्येक मेनू आइटम के गुणों को निर्धारित किया है। शायद पूरे मेनू की बजाय प्रत्येक मेनू आइटम पर दृश्य विशेषता सेट करके, आप जो परिणाम चाहते हैं उन्हें प्राप्त कर सकते हैं।

0
private void genPassMenu_Opening(object sender, CancelEventArgs e) 
    { 
     //genPassMenu.Enabled = lstPasswords.SelectedIndex > 0; 
     //genPassMenu.Visible = lstPasswords.SelectedIndex > 0; 
     e.Cancel = (lstPasswords.SelectedIndex <= 0); 


    } 

मैंने देखा कि उपर्युक्त विपरीत होने पर मैंने कोड को थोड़ा उलट दिया। कुछ कारणों से समानता भी काम नहीं करती है।

संबंधित मुद्दे