2012-01-12 8 views
5

मैं एक संदर्भ मेनू बनाना चाहता हूं जिसमें कई कॉलम हैं। मूल रूप से यह इस तरह जाना होगा:क्या मैं .NET विंडोज फॉर्म में एकाधिक-कॉलम संदर्भ मेनू बना सकता हूं?

First item | [common option] | All Options > 
Second item | [common option] | All Options > 
Third item | [common option] | All Options > 
Fourth item | [common option] | All Options > 

तो बुनियादी तौर पर देखते हैं मदों की एक गुच्छा (क्रम में उत्पन्न), प्रत्येक आइटम अपने आप ही शुरू किया जा सकता है; या एक सामान्य रूप से इस्तेमाल विकल्प के साथ; या आप सभी संभावित विकल्पों के साथ सबमेनू प्राप्त कर सकते हैं।

मैं यह कैसे कर सकता हूं? मैं ContextMenuStrip और ContextMenu दोनों का दुरुपयोग करने की कोशिश कर रहा हूं, फिर भी उनके पास ऐसा कोई विकल्प नहीं है। फिर भी मैंने देखा बहु-स्तंभ मेनू कहीं वाले ...

मैं एक Windows पसंद करेंगे समाधान फॉर्म्स याद करने के लिए है, क्योंकि मैं किसी भी WPF अनुभव की जरूरत नहीं है लगता है। ओह, और अधिसूचना क्षेत्र (उर्फ सिस्ट्रे) में किसी आइकन पर क्लिक करते समय यह संदर्भ मेनू खुल जाएगा। WinForms में

उत्तर

5

मुझे ContextMenuStrip के बारे में पता नहीं है, जो पूरी तरह से .NET कोड में बनाया गया मेनू है, लेकिन आप निश्चित रूप से ContextMenu के साथ ऐसा कर सकते हैं, जो देशी सिस्टम मेनू पर एक रैपर है। क्रमशः MenuItem.Break और MenuItem.BarBreak,:

कुंजी व्यक्तिगत मेनू आइटम (रों) है, जो MenuItem class आवरण में गुण के रूप में संपर्क में हैं के लिए MFT_MENUBREAK या MFT_MENUBARBREAK झंडे स्थापित कर रही है।

पूर्व बस एक नया स्तंभ में, जबकि दूसरा स्थानों आइटम एक नया स्तंभ में मेनू आइटम देता है, और एक नक्काशी खड़ी रेखा के साथ स्तंभ अलग करती है।

MSDN उदाहरण से:

public void CreateMyMenus() 
{ 
    // Create three top-level menu items. 
    MenuItem menuItem1 = new MenuItem("&File"); 
    MenuItem menuItem2 = new MenuItem("&New"); 
    MenuItem menuItem3 = new MenuItem("&Open"); 

    // Set the BarBreak property to display horizontally. 
    menuItem2.BarBreak = true; 
    menuItem3.BarBreak = true; 

    // Add menuItem2 and menuItem3 to the menuItem1's list of menu items. 
    menuItem1.MenuItems.Add(menuItem2); 
    menuItem1.MenuItems.Add(menuItem3); 
} 
0

मेनू केवल पेड़ की तरह बनाया जा सकता है: आप प्रत्येक मद के अंतर्गत एक सबमेनू हो सकता है। तो आप सबमेनू के पहले आइटम के रूप में सामान्य विकल्प डाल सकते हैं।

यह किसी भी अलग है जब तक कि आप अपने खुद के नियंत्रण के लिए डिजाइन नहीं देख सकते हैं (और फिर WPF भी बहुत कुछ इस कार्य के लिए उपयुक्त है, लेकिन WPF जानने के लिए समय का एक बहुत लेता है)।

+0

ठीक है, यह ठीक है, लेकिन इतना है कि यह 3 कॉलम में प्रदर्शित किया गया है नहीं मैं अपने पेड़ के पहले स्तर की व्यवस्था कर सकते हैं? 3 वस्तुओं को एक दूसरे से संबंधित होने की आवश्यकता नहीं है (प्लेसमेंट को छोड़कर)। –

+0

नहीं, आप नहीं कर सकते। –

+2

निश्चित रूप से आप कर सकते हैं। देशी Win32 मेनू इस ठीक ठीक समर्थन करते हैं। अब, चाहे यह अच्छा यूआई डिज़ाइन अभी भी बहस योग्य है, लेकिन आपको निश्चित रूप से WPF का उपयोग करने की आवश्यकता नहीं है। यह एक पुलिस-आउट उत्तर है जो मैं यहां बहुत बार देखता हूं। लोगों के लिए अच्छे कारणों के * बहुत * हैं * नहीं * डब्ल्यूपीएफ का उपयोग करना चाहते हैं। –

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