प्रोग्रामेटिक रूप से DataGridView में एक पंक्ति का चयन करना


109

मैं क्रमिक रूप से क्रमिक रूप से पंक्तियों की एक विशेष श्रेणी का चयन कैसे कर सकता हूं DataGridView?

जवाबों:


127

परीक्षण नहीं किया गया है, लेकिन मुझे लगता है कि आप निम्न कार्य कर सकते हैं:

dataGrid.Rows[index].Selected = true;

या आप निम्नलिखित कर सकते हैं (लेकिन फिर से: परीक्षण नहीं किया गया):

dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
    if(YOUR CONDITION)
       row.Selected = true;
}

यदि आपका DataGridView है read-only- तो सावधान रहें SelectedRows.Clear()
डेरेक डब्ल्यू

14
इसके बजाय SelectedRows.Clear () DataGridView उदाहरण की विधि ClearSelection () का उपयोग
फ़ुरकन

1
@ फुरकान: वही काम नहीं करता। साथ SelectedRows.Clear()ही चयनित पंक्तियों को मंजूरी दे दी जाती है, लेकिन साथ ClearSelection()भी कॉलम => स्तंभ चयन खो रहे हैं ...
क्रिस्टोफ फिंक

17
कोड की एक पंक्ति जोड़ेंdataGrid.CurrentCell = dataGrid.Rows[row.Index].Cells[0];
टाइमलेस

2
@ समयहीन: आपके सुझाव का परीक्षण करते समय SelectionChanged ईवेंट ट्रिगर नहीं होता है।
user2430797

34

Visual Basic में, पंक्ति का चयन करने के लिए ऐसा करें DataGridView; चयनित पंक्ति एक हाइलाइट किए गए रंग के साथ दिखाई देगी लेकिन ध्यान दें कि कर्सर की स्थिति नहीं बदलेगी:

Grid.Rows(0).Selected = True

क्या यह कर्सर की स्थिति में परिवर्तन करता है:

Grid.CurrentCell = Grid.Rows(0).Cells(0)

ऊपर की पंक्तियों को मिलाकर कर्सर को स्थिति देगा और एक पंक्ति का चयन करेगा। यह एक पंक्ति में ध्यान केंद्रित करने और चुनने के लिए मानक प्रक्रिया है DataGridView:

Grid.CurrentCell = Grid.Rows(0).Cells(0)
Grid.Rows(0).Selected = True

ग्रिड.ऑवर्स (0)। ग्रिड (0) ग्रिड डिस्प्ले क्षेत्र की तुलना में ग्रिड डेटा के मामले में बहुत उपयोगी है। ऊपर उल्लिखित आदेश आवश्यक नहीं है, आप पंक्ति / सेल चयन [स्रोत: व्यक्तिगत रूप से परीक्षण] के लिए कोड स्वाइप कर सकते हैं।
BiLaL

ग्रिड को चयनित स्थिति में कैसे ले जाएं? पंक्ति का चयन किया गया है लेकिन ग्रिड की स्थिति चयनित पंक्ति पर नहीं है। मैन्युअल रूप से स्क्रॉल करने से चयनित पंक्ति दिखाई देती है। ग्रिड को स्क्रॉल करने के लिए कैसे मजबूर करें?
FrenkyB

देखें कि: FirstDisplayedScrollingRowIndex
रोड्रिगो टी।

12
DataGridView.Rows
    .OfType<DataGridViewRow>()
     .Where(x => (int)x.Cells["Id"].Value == pId)
     .ToArray<DataGridViewRow>()[0]
     .Selected = true;

0
 <GridViewName>.ClearSelection(); ----------------------------------------------------1
 foreach(var item in itemList) -------------------------------------------------------2
 {
    rowHandle =<GridViewName>.LocateByValue("UniqueProperty_Name", item.unique_id );--3
    if (rowHandle != GridControl.InvalidRowHandle)------------------------------------4
    {
        <GridViewName>.SelectRow(rowHandle);------------------------------------ -----5
    }
  }
  1. पिछले सभी चयन को साफ़ करें।
  2. अपने ग्रिड में चुने जाने वाली पंक्तियों के माध्यम से लूप करें।
  3. ग्रिड से उनकी पंक्ति हैंडल प्राप्त करें (नोट यहाँ ग्रिड पहले से ही नई पंक्तियों के साथ अद्यतन है)
  4. जाँच करें कि पंक्ति हैंडल मान्य है या नहीं।
  5. जब मान्य पंक्ति संभालती है तो उसका चयन करें।

जहां आइटमलिस्ट ग्रिड दृश्य में चयनित होने वाली पंक्तियों की सूची है।


0

इसे इस्तेमाल करे:

datagridview.Rows[currentRow].Cells[0];

datagridview.Rows[currentRow].Cells[0] हो जाता है ... प्रदान किए गए सूचकांक स्थान पर सेल। प्रश्न में अनुरोध के अनुसार यह पंक्तियों की एक विशेष श्रेणी का चयन कैसे करता है ?
dbc 16


-1

लोड समय पर DataGridView की चयनित पंक्ति सेट करते समय, DataBindingComplete घटना में इसे संभालने पर विचार करें, क्योंकि यह डिफ़ॉल्ट रूप से अधिलेखित किया जा सकता है।


-1

इसे इस्तेमाल करे:

DataGridViewRow row = dataGridView1.Rows[index row you want];
dataGridView1.CurrentRow = row;

उममीद है कि इससे मदद मिलेगी!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.