परिचय
एक्सटेंडर प्रोवाइडर अन्य कंपोनेंट्स/कंट्रोल्स को अतिरिक्त प्रॉपर्टी प्रदान करते हैं। क्लासिक उदाहरण: ToolTip कंपोनेंट, जो फॉर्म पर हर कंट्रोल को ToolTip प्रॉपर्टी देता है।
काम करने का तरीका
IExtenderProviderइंटरफ़ेस इम्प्लीमेंट करें।CanExtend(object extendee)मेथड में लक्ष्य कंट्रोल प्रकार की जांच करें।- प्रदान की जाने वाली प्रॉपर्टी के लिए
GetXxx/SetXxxमेथड प्रदान करें। [ProvideProperty("PropertyName", typeof(Control))]एट्रिब्यूट क्लास पर लगाएं।
उदाहरण स्केलेटन
using System;
using System.ComponentModel;
using System.Windows.Forms;
[ProvideProperty("MyToolTip", typeof(Control))]
public class MyExtender : Component, IExtenderProvider
{
// कौन से कंट्रोल एक्सटेंड किए जा सकते हैं
public bool CanExtend(object extendee)
{
return extendee is Control;
}
// प्रॉपर्टी स्टोरेज
private Dictionary tooltips = new Dictionary();
// Get मेथड (डिज़ाइनर प्रॉपर्टी ग्रिड में दिखता है)
public string GetMyToolTip(Control ctrl)
{
return tooltips.TryGetValue(ctrl, out var tip) ? tip : "";
}
// Set मेथड
public void SetMyToolTip(Control ctrl, string value)
{
if (string.IsNullOrEmpty(value))
tooltips.Remove(ctrl);
else
tooltips[ctrl] = value;
}
}
उपयोग
// डिज़ाइनर में: कंट्रोल पर "MyToolTip" प्रॉपर्टी दिखाई देगी // कोड में: myExtender1.SetMyToolTip(button1, "This is a tooltip!");
नोट
- मुख्यतः Windows Forms डिज़ाइन-टाइम सपोर्ट के लिए।
- WPF/UWP में अटैच्ड प्रॉपर्टी उपयोग की जाती है।