ডেটাগ্রিডভিউতে বর্তমানে নির্বাচিত সারিটির সূচক


96

এটা খুব সহজ। আমি বর্তমানে Rowএকটি নির্বাচিত এর সূচক পেতে পারি DataGridView? আমি Rowবস্তুটি চাই না , আমি সূচকটি চাই (0 .. n)।

উত্তর:


166

নেই RowIndexজন্য সম্পত্তি CurrentCellDataGridView জন্য সম্পত্তি।

datagridview.CurrentCell.RowIndex

হ্যান্ডেল SelectionChangedঘটনা এবং উপরোক্ত হিসাবে নির্বাচিত সারির সূচক এটি।


4
পারফেক্ট এটি সিলেক্টড রো [0] এর চেয়েও সহজ / দ্রুততম বলে মনে হয় nd সূচি। এটি একটি ভাল ধারণা হবে?
— এরিক

হুম, আমি একাধিক সারি নির্বাচিত হওয়ার কথা ভাবি নি। আমি এক্ষেত্রে বর্তমান কক্ষের আচরণ সম্পর্কে নিশ্চিত নই।
— ফ্লেচার

4
এটি যদি এক্সেলের মতো কিছু হয় তবে নির্বাচিত তালিকাটি অনেকগুলি সারি / কলাম হতে পারে তবে কেবল একটি বর্তমান / সক্রিয় সেল রয়েছে। আমি কেবলমাত্র বর্তমান সারি সম্পর্কে যত্নশীল তাই এটি ঠিক করা উচিত।
— এরিক

18
আমি জানি এই পোস্টটি পুরানো, তবে এটি অন্য কাউকে সাহায্য করতে পারে: CurrentCell"সক্রিয়" ঘরটি ফেরত দেয় যা "নির্বাচিত" থেকে আলাদা। এমনকি যদি একাধিক সারি নির্বাচিত হয়, সক্রিয় সেলটি অন্য কোথাও হতে পারে এবং সেখানে কেবলমাত্র একটি সক্রিয় সেল থাকতে পারে
— লূক মার্লিন

4
এছাড়াও, আপনি যদি ডেটা গ্রিড ভিউতে সমস্ত কিছু ডি-সিলেক্ট করেন, সেগুলির মধ্যে একটি এখনও সক্রিয় থাকবে, যাতে কোনও সারি নির্বাচিত না হওয়ার জন্য আপনি এই নাল বা এমন কিছুতে নির্ভর করতে পারবেন না।
— ড্যানিয়েল গ্রে

37

আপনার ডিজিভি'র নির্বাচিত র মান সংগ্রহের সূচী সম্পত্তিটি ব্যবহার করুন:

int index = yourDGV.SelectedRows[0].Index;

আপনি কি মনে করেন এটি ভাল বা ডিজিভি.কন্টেনসেল.রউইনডেক্স?
— এরিক

4
বর্তমান সেলটি কিছু ক্ষেত্রে নির্বাচিত নাও হতে পারে, সুতরাং এটি যাওয়ার আরও ভাল উপায়।
— ছোট এন্ডিয়ান

4
@ থিথুথিংনাং যখন আপনি কোনও সারি নির্বাচন না করেন, @ জয়রেগস এর সমাধান সূচী ত্রুটিটিকে দু'বার ফেলে দেবে। আপনি এটির সাথে আরও ভালভাবে জড়ানো চাইবেনif
— অ্যালান রুইন

7
dataGridView1.SelectedRows[0].Index;

বা আপনি যদি লিনকিউ ব্যবহার করতে চান এবং সমস্ত নির্বাচিত সারিগুলির সূচক পেতে চান তবে আপনি এটি করতে পারেন:

dataGridView1.SelectedRows.Select(r => r.Index);

সহায়ক (সূচকগুলি এখনও "আমার রাডারে" এখনও ছিল না), তবে সারি পাওয়ার পরে রাউন্ডআউটটি প্রয়োজনীয় নয়। .Index পদ্ধতিটি আমি যা খুঁজছিলাম।
— এরিক


3

এটি চেষ্টা করুন এটি কার্যকর হবে ... এটি আপনাকে নির্বাচিত সারি সূচকের সূচী দেয় ...

int rowindex = dataGridView1.CurrentRow.Index;
MessageBox.Show(rowindex.ToString());

2

এটা চেষ্টা কর

bool flag = dg1.CurrentRow.Selected;

if(flag)
{
  /// datagridview  row  is  selected in datagridview rowselect selection mode

}
else
{
  /// no  row is selected or last empty row is selected
}

ধন্যবাদ, গ্রিডভিউয়ের সাথে সম্পর্কিত নয় এমন একটি নিয়ন্ত্রণ ব্যবহার করার সময় নির্বাচিত সারির লুকানো মান কী তা নির্ধারণ করার জন্য আমার ঠিক কী দরকার ছিল।
— orgtigger

2

আমি @ জাআরিগস এর উত্তরটি পরিবর্তন করেছি এবং এটি কাজ করে। আপনার প্রয়োজন ifকারণ কখনও কখনও নির্বাচিত রো খালি থাকতে পারে, তাই সূচী অপারেশনটি একটি ব্যতিক্রম ছুঁড়ে দেবে।

if (yourDGV.SelectedRows.Count>0){
    int index = yourDGV.SelectedRows[0].Index;
}

1

ব্যবহার করে দেখুন DataGridView.CurrentCellAddress ।

রিটার্নস: একটি পয়েন্ট যা বর্তমানে সক্রিয় ঘরের সারি এবং কলাম সূচকে উপস্থাপন করে।

EG প্রথম কলাম এবং পঞ্চম সারিটি নির্বাচন করুন এবং আপনি ফিরে পাবেন: পয়েন্ট (এক্স = 1, Y = 5)


পিএস যেহেতু আমি সারি সূচকের জন্য জিজ্ঞাসা করেছি, আপনি যদি বলতেন তবে আমাদের সম্পর্কের ক্ষেত্রে জিনিসগুলি কম কম হত DataGridView.CurrentCellAddress.Y... :)
— এরিক

আমি মনে করি এই মুহুর্তে এই উত্তরগুলির সবগুলি বৈধ, আপনার উদ্দেশ্যে আপনি কোনটি চয়ন করতে চান এটি কেবল আপনার পক্ষে just আমি বিভিন্ন বাস্তবায়নগুলি টাইপ করে এবং আই.এল.নেট রিফ্লেক্টর ( red-gate.com / প্রোডাক্টস / রিফ্লেক্টর ) এর দিকে তাকানোর পরামর্শ দিই যদি আপনি সত্যিই প্রতিটিটির জন্য কী কোড উত্পন্ন হয় তা দেখতে চান তবে অনেকেই বলবেন, এটি মাইক্রো -প্রতিবাদ। অভিপ্রায়ে সর্বাধিক স্পষ্টত এটি নিচে। ভবিষ্যতে আরও স্পষ্ট হওয়ার জন্য PS নোট নেওয়া হয়েছে।
— কিলানাশ

1

এটি চেষ্টা করুন:

int rc=dgvDataRc.CurrentCell.RowIndex;** //for find the row index number
MessageBox.Show("Current Row Index is = " + rc.ToString());

আমি আশা করি এটা তোমাকে সাহায্য করবে।


4
চিপিং করার জন্য ধন্যবাদ, তবে আপনার উত্তরটি নির্বাচিত (এবং সর্বাধিক উত্সাহিত উত্তর) এর একটি সদৃশ যা সমাধান দিয়েছে datagridview.CurrentCell.RowIndex। আমার ক্ষমাপ্রার্থনা — আমি এই পোস্টটি একটি সম্পূর্ণ নকল হিসাবে মুছে ফেলার পরামর্শ দিতে যাচ্ছি।
— এরিক

0

আপনি এই কোড চেষ্টা করতে পারেন:

int columnIndex = dataGridView.CurrentCell.ColumnIndex;
int rowIndex = dataGridView.CurrentCell.RowIndex;

0

সারি মানটি ক্লিক করা হলে আমি ব্যবহার করেছি:

private void dataGridView_Product_CellClick(object sender, DataGridViewCellEventArgs e){
    int rowIndex;
    //rowIndex = e.RowIndex; //Option 1
    //rowIndex= dataGridView_Product.CurrentCell.RowIndex; //Option 2
    rowIndex = dataGridView_Product.CurrentRow.Index; //Option 3
}

-1

নিম্নলিখিত চেষ্টা করুন:

int myIndex = MyDataGrid.SelectedIndex;

এটি বর্তমানে নির্বাচিত সারির সূচি দেয়।

আশাকরি এটা সাহায্য করবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.