आप यह अगला निर्देश ले सकते हैं और परफॉर्मेंस की कमी के साथ काम करेंगे।यदि आप इसका प्रभाव देखना चाहते हैं, तो 2 अगले निर्देशों (तकनीकी रूप से सिमिलर्स) में से एक को रखें जहां आपको डेटाग्रिड व्यू को {try catch (...) {} में अवरुद्ध करने की आवश्यकता है, अंत में ब्लॉक करें और प्रतीक्षा करें कि क्या होता है।
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
आप इस कार्य में सुधार है, लेकिन इसके लिए पर्याप्त नहीं है, वहाँ क्योंकि colums कि DataGridView वस्तु में रहता है की एक DataGridView पुनर्स्थापित करने के लिए एक समस्या है। आखिर में मेरा सुझाव है कि, मैंने अपने घर अभ्यास में सबसे अच्छा तरीका लागू किया है, इस ग्रिड व्यू को पंक्तियों, स्तंभों के साथ फ़ाइल के रूप में संभालना है: पंक्तियों और स्तंभों के बीच मिलान के आधार पर एक रिकॉर्ड संग्रह। यदि आप सुधार कर सकते हैं, तो अपनी पसंद लें ए) या बी): foreach या जबकि।
//(a): With foreach
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
foreach(object _row in dataGridView1.Rows){
dataGridView1.Rows.RemoveAt(0);
}
//(b): With foreach
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Columns.Count > 0)
{
dataGridView1.Columns.RemoveAt(0);
}
ठीक है, एक recomendation कभी अपने जीवन में कॉलम पहले उसे हटा नहीं के रूप में, क्रम में कॉलम के बाद पंक्तियों से पहले है, क्योंकि तार्किक कॉलम जहां पहली बार बनाया और फिर rows.It मामले में एक दंड होगा सही analisys के।
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
foreach (object _row in dataGridView1.Rows)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Columns.Count > 0)
{
dataGridView1.Columns.RemoveAt(0);
}
फिर, इसे किसी फ़ंक्शन या विधि के अंदर रखें।
private void ClearDataGridViewLoopWhile()
{
while (dataGridView1.Rows.Count > 1)
{
dataGridView1.Rows.RemoveAt(0);
}
while (dataGridView1.Columns.Count > 0)
{
dataGridView1.Columns.RemoveAt(0);
}
}
private void ClearDataGridViewForEach()
{
foreach (object _Cols in dataGridView1.Columns)
{
dataGridView1.Columns.RemoveAt(0);
}
foreach (object _row in dataGridView1.Rows)
{
dataGridView1.Rows.RemoveAt(0);
}
}
अंत में, अपने नए कार्य ClearDataGridViewLoopWhile फोन(); या ClearDataGridViewForEach(); जहां आपको इसका उपयोग करने की आवश्यकता है, लेकिन जब आप क्वेरी कर रहे हैं और सेवरॉल टेबल पर बदल रहे हैं तो इसकी अनुशंसा की जाती है जो शिकायत में हेडर नामों के साथ लोड होगा। लेकिन अगर आप हेडर को संरक्षित करना चाहते हैं तो यहां एक समाधान दिया गया है।
डेटा नियंत्रण करने के लिए बाध्य है:
यहाँ मेरी विधि है? कोड कृपया! – davenewza
[DataGridView.Clear()] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/3744882/datagridview-clear) –