PDA

View Full Version : dataGridView انتخاب یک ردیف از dataGridView و استفاده یا استخراج اطلاعات آن در TextBox یا Label



vahdani_d
شنبه 21 اردیبهشت 1392, 11:04 صبح
سلام
یک برنامه ویندوز اپلیکیشن نوشتم که برای جستجو در برنامه ام یک dataGridView قرار دادم که اطلاعات رو نمایش میده اما میخوام با انتخاب هر ردیف از dataGridView اطلاعات فیلدهای اون در TextBox یا Label ریخته بشه و نمایش داده بشه

- به چه شکل باید بفهمونم که کدام ردیف انتخاب شده
- به چه شکل اطلاعات انتخاب شده را استخراج کنم

لطفا در صورت امکان یک نمونه کد هم برام بزارید با تشکر

morteza271
شنبه 21 اردیبهشت 1392, 11:08 صبح
سلام.
دستور
dgvList.CurrentRow سطر انتخاب شده رو بهتون میده.
و مثلا با استفاده از دستور زیر میتونید محتوای ستون اول سطر جاری رو توی یه تکست باکس بریزید:
TextBox1.Text = dgvList.CurrentRow.Cells["ColumnName"].Value.ToString();
البته اینم بگم سوالتون خیلی تکراریه و احتمالا حذف میشه

Behnam6670
شنبه 21 اردیبهشت 1392, 11:12 صبح
اینجوری بنویس

int id=datagrid1.CurentRow.Cells["اسم ستونت"].Value.Tostring()
حال کد اون سطر رو داری
الان میتونی از طریق اون کد تو دیتا بیست سرچ بزنی و اطلاعات معادل اون کد رو بزاری تو تکست باکس یا هرچیز دیگه


اگه نخواستی تو دیتا بیس هم سرچ بزنی تو رویداد کلیک دیتا گریدت به تعداد ستونهایی که میخوای داده هاش رو بریزی تو تکست باکس بیا کد بالا رو بنویس و بجای id مثلا بنویس

TextBox1.Text==datagrid1.CurentRow.Cells["اسم ستونت"].Value.Tostring()

morteza271
شنبه 21 اردیبهشت 1392, 11:20 صبح
اینجوری بنویس

int id=datagrid1.CurentRow.Cells["اسم ستونت"].Value.Tostring()
حال کد اون سطر رو داری
الان میتونی از طریق اون کد تو دیتا بیست سرچ بزنی و اطلاعات معادل اون کد رو بزاری تو تکست باکس یا هرچیز دیگه


اگه نخواستی تو دیتا بیس هم سرچ بزنی تو رویداد کلیک دیتا گریدت به تعداد ستونهایی که میخوای داده هاش رو بریزی تو تکست باکس بیا کد بالا رو بنویس و بجای id مثلا بنویس

TextBox1.Text==datagrid1.CurentRow.Cells["اسم ستونت"].Value.Tostring()



این قسمت از کدتون با حال بود :
int id=datagrid1.CurentRow.Cells["اسم ستونت"].Value.Tostring()

:چشمک::چشمک::چشمک:

vahdani_d
شنبه 21 اردیبهشت 1392, 11:30 صبح
حالا اگه یکی از فیلد هامون عکس باشه و بخوایم توی pictureBox نمایش داده بشه چی ؟! چکار باید کرد ؟!
اینجا یک مشکلی هم هست
حتما باید روی نوشه سطر کلیک کنی تا متن نمایش داده بشه نمیشه کاری کرد که وقتی روی فلش سمت راست گرید کلیک میکنی نمایش داده بشه ؟

Behnam6670
شنبه 21 اردیبهشت 1392, 12:06 عصر
چرا بازم میتونی به اطلاعات مربوط به یه سطر خاصی دسترسی داشته باشی

nanoox
شنبه 21 اردیبهشت 1392, 12:16 عصر
سلام جانم
فکرکنم اگه شما ویژگی SelectionMode از دیتاگریدت رو برابر با FullRowSelect قرار بدی اونموقع هرجاییش که کلیک کنی کل row واست select میشه و همون Current row شماست!

GridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

gilas1368
شنبه 21 اردیبهشت 1392, 12:20 عصر
سلام.
دستور
dgvList.CurrentRow سطر انتخاب شده رو بهتون میده.
و مثلا با استفاده از دستور زیر میتونید محتوای ستون اول سطر جاری رو توی یه تکست باکس بریزید:
TextBox1.Text = dgvList.CurrentRow.Cells["ColumnName"].Value.ToString();
البته اینم بگم سوالتون خیلی تکراریه و احتمالا حذف میشه


من از همین دستور برای گرفتن اطلاعات ستون دوم سطر جاری استفاده میکنم
اما خطای Object not set میده بهم
کدی که مینویسم اینه:


textbox1.text=datagridview.currentrow.cell[1].value.tostring();

amir200h
شنبه 21 اردیبهشت 1392, 12:33 عصر
توی رویداد SelectionChanged کدهای زیرو بنویس



private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
txtsname.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
txtshowmessage.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
txtdate.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
txttime.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
}