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


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.