मैं कुछ कोड का पुन: उपयोग करना चाहता हूं जिसे मैंने डेटाग्रिडव्यू में कुछ कार्यक्षमता जोड़ने के लिए लिखा था। मैं डिफ़ॉल्ट डेटाग्रिडव्यू गुणों और घटनाओं को उजागर करना चाहता हूं, इसलिए मैं एक नया कस्टम घटक नहीं बनाना चाहता था। तो मैंने एक सबक्लास लिखने की कोशिश की, जो ठीक काम करता है। लेकिन यह भी मेरे लिए हुआ कि मैं एक स्टैंडअलोन यूटिलिटी क्लास लिख सकता हूं जो कि कन्स्ट्रक्टर में डेटाग्रिडव्यू लेता है और इसे उसी तरह सेट करता है। जैसेउपयोगिता वर्ग बनाम subclassing .net नियंत्रण
public class
MyGrid
{
private DataGridView m_dg;
public MyGrid(DataGridView dg)
{
m_dg = dg;
m_dg.RowHeadersVisible = false;
m_dg.SortCompare += new DataGridViewSortCompareEventHandler(m_dg_SortCompare);
}
void m_dg_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
// do custom sorting here
}
}
मेरे ऐप की स्टार्टअप में तो कहीं मैं
MyGrid g1 = new MyGrid(dataGridView1);
MyGrid g2 = new MyGrid(dataGridView2);
और बहुत आगे है कहेंगे। इस दृष्टिकोण के लिए कोई नुकसान? ऐसा लगता है कि बहुत से कोड समान होने जा रहे हैं, अंतर यह है कि आप विस्तारित ग्रिड को कैसे चालू करते हैं (फॉर्म में एक उप-वर्गीकृत नियंत्रण खींचें और ड्रॉप करें, एक सादा डेटाग्रिडव्यू खींचें और उपरोक्त कोड पर कॉल करें)