2010-12-24 10 views
9

मैंने फैसला किया है कि मैं "जटिल संदर्भ" यानी कस्टम-कंट्रोल के साथ एक सूची चाहता हूं। (लक्ष्य फ़ोटो, स्टेटस-आइकॉन, टेक्स्ट और "स्टार्ट-चैट-बटन" के साथ एक दोस्त सूची की तरह दिख रहा है।)विंडोज़ में सूची-नियंत्रण बनाएं। फर्म

लेकिन मुझे इसे एक सूची के रूप में व्यवहार करना पसंद है: स्क्रॉलबार, एकाधिक का चयन करने की संभावना आइटम, आदि

जब मैं ListView और ListBox को देख रहा हूं तो मैं केवल यह देखता हूं कि मैं टेक्स्ट और आइकन जोड़ सकता हूं, लेकिन मनमाने ढंग से नियंत्रण नहीं कर सकता। मुझे याद आ रही है कि यह कैसे किया जाता है?

या क्या मुझे ListView/ListBox से कुछ और उपयोग करना चाहिए?

+2

Winforms के बजाय WPF का प्रयास क्यों न करें? –

+1

@ डीन चाक: मैं एक मौजूदा एप्लिकेशन में एक सुविधा जोड़ रहा हूं। विंडोज़ कौन सा है। – leiflundgren

+1

"कोशिश करने" का उल्लेख नहीं करने के लिए यदि आपको अभी तक कोई अनुभव नहीं मिला है तो डब्ल्यूपीएफ को एक सीधी सीखने की अवस्था होगी। –

उत्तर

4

the Data Repeater नामक विजुअल बेसिक पावर पैक में दफन किया गया नियंत्रण है।

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

मैंने इसे पहले इस्तेमाल किया है, और मेरा मानना ​​है कि यह पूरी तरह से अंतर्ज्ञानी नहीं है, लेकिन एक बार जब आप इसके चारों ओर अपना सिर प्राप्त कर लेते हैं, तो यह काफी उपयोगी हो सकता है। यह आपके नियंत्रण को भी घुमाता है।

यह वर्तमान में विंडोज़ फॉर्मों में मनमाने ढंग से दोहराने वाले नियंत्रण के विचार की सबसे नज़दीकी चीज है जिसे मैंने अभी तक पाया है।

3

WPF में यह बनाने के लिए अपेक्षाकृत छोटा होगा (जबकि यह विंडोज फॉर्म में बहुत काम करेगा) - डब्ल्यूपीएफ को ऐसे समृद्ध-यूआई नियंत्रण बनाने के लिए डिज़ाइन किया गया है। यदि आपका शेष ऐप विंडोज फॉर्म में है, तो आप WPF control in Windows Forms होस्ट कर सकते हैं।

+1

यह WinForms में भी छोटा है, डेटा पुनरावर्तक नामक विजुअल बेसिक पावर पैक में ऐसा करने के लिए एक नियंत्रण उपलब्ध है। मैं मानता हूं कि WinForms में कुछ भी नहीं शुरू करना, मामूली नहीं है। –

7

FlowLayoutPanel का उपयोग करें। आप खड़ी व्यवस्था, स्क्रॉल के साथ नियंत्रण चाहते हैं, करते हैं:

myFlowLayoutPanel.AutoScroll = true; 
myFlowLayoutPanel.FlowDirection = FlowDirection.TopDown; 
myFlowLayoutPanel.WrapContents = false; // Vertical rather than horizontal scrolling 
foreach(Control myControl in myControls){ 
    myFlowLayoutPanel.Controls.Add(myControl); 
} 

यकीन है कि पैनल इतना बड़ा नियंत्रण और स्क्रॉलबार को रोकने के लिए है। मुझे आपकी चयन आवश्यकता के बारे में निश्चित नहीं है।

+0

धन्यवाद आदमी, यही वही है जो मुझे बिल्कुल जरूरी था। – Bertie92

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