2008-10-05 12 views
5

मैं बटन को कस्टम नियंत्रण बफर करना चाहता हूं जिसमें बटन शामिल हैं। मैंने नियंत्रण बफर को दोगुना करने के विभिन्न तरीकों की कोशिश की है; SetStyle, BufferedGraphicsContext, और बिटमैप पर ड्राइंग। ये सभी नियंत्रण के कस्टम ड्राइंग के लिए ठीक काम करते हैं, लेकिन उनमें से कोई भी बैक बफर पर बटन खींचने में संभाल नहीं करता है। मुझे यह कैसे हासिल होगा?कस्टम नियंत्रण में डबल बफर बाल नियंत्रण (सी #)

+0

यह भी देखें: http://stackoverflow.com/questions/76993/how-to-double-buffer-net-controls-on-a-form। – ESRogs

उत्तर

2

तकनीकी रूप से आप नहीं कर सकते हैं, और आपको वास्तव में यह आवश्यक नहीं होना चाहिए कि वे मानक हैं .NET WinForms बटन।

बटन स्वयं संरक्षित DoubleBuffered संपत्ति के माध्यम से नियंत्रित करते हैं। इसका उपयोग करने का एकमात्र तरीका एस.ए.एफ.बटन से एक नई कक्षा प्राप्त करना होगा, और उस वर्ग के उदाहरणों पर डबलबफर्ड संपत्ति को सक्षम करने के लिए कोड लागू करना होगा (मैं शायद इसे निर्माता में करता हूं)। अंत में, S.W.F.Buttons की बजाय अपने फॉर्म पर उस नई कक्षा की ऑब्जेक्ट्स का उपयोग करें।

हालांकि, जैसा कि मुझे याद है, बटन पूरी तरह से WinAPI से खींचे जाते हैं; वे जीडीआई + नहीं हैं। नतीजतन, आपको को की आवश्यकता नहीं है ताकि वे अपने ड्राइंग को डबल-बफर कर सकें। उस ने कहा, मुझे आपके उपयोग परिदृश्य को नहीं पता है और मुझे नहीं पता कि आपका ऐप कौन सा लक्षण प्रदर्शित कर रहा है, इसलिए मैं गलत हो सकता था। :)

आप Pro .NET 2.0 Windows Forms and Custom Controls in C# पुस्तक को देखने पर विचार कर सकते हैं। यह सब उस पुस्तक में जानकारी से सारांशित किया गया था।

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