PDA

View Full Version : سوال: انتخاب یک سطر از datagridview



f_g1348
سه شنبه 04 اسفند 1388, 16:24 عصر
سلام به دوستان
من می خواهم در یک datagridview اگر بر روی یک سطر از آن کلیک کردم محتویات آن سطر دقیقا در یکسری textbox قرار گیرد.
چطور می تونم متوجه شوم که سطر انتخاب شده و نیز چگونه آن مقادیر را در textbox ها قرار دهم.
با تشکر

amin_iman82
سه شنبه 04 اسفند 1388, 16:57 عصر
شماره قرمز شده ، شماره ی ستون مورد نظر شماست (اولین ستون 0 و بقیه 1. 2. 3. ... )




textbox1.text += DataGridView1.SelectedRows(0).Cells(0).Value
textbox1.text += DataGridView1.SelectedRows(0).Cells(1).Value
textbox1.text += DataGridView1.SelectedRows(0).Cells(3).Value

kebriya
سه شنبه 04 اسفند 1388, 20:01 عصر
این روشی که گفتن درسته ولی کاملتر اینکه در رویداد DataGridView1_CellMouseDown کد زیر رو بنویسی:

Try
DataGridView1.Rows(e.RowIndex).Selected = True
ff(e.RowIndex)
Catch ex As Exception
MessageBox.Show("لطفا ردیفها را انتخاب کنید", "خــطــا")
End Try

و در رویداد RowHeaderMouseClick کد زیر:

ff(e.RowIndex)

که ff نام تابعی است که خودمون نوشتیم و می خواهیم محتویات را در text ها قرار دهد( که دوستمون بالا گفتن) منم یه دفعه دیگه میگم


Private Sub ff(ByVal i As Byte)
id.Text = DataGridView1.Rows(i).Cells(0).Value.ToString
fname.Text = DataGridView1.Rows(i).Cells(1).Value.ToString
lname.Text = DataGridView1.Rows(i).Cells(2).Value.ToString
End Sub
اگه مشکل داشتین بگین یه نمونه کد بذارم واستون

f_g1348
چهارشنبه 05 اسفند 1388, 09:49 صبح
با تشکر از دوستان
حالا فرض کنید من در جدول مثلا 10 فیلد دارم ولی در grid مثلا 5 تا ولی می خواهم وقتی آن سطر از grid که انتخاب شد در textbox ها هر 10 مقدار آن فیلد ها set شود دیگر با روش binding بالا این امر مقدور نیست.
ممنون میشم راهنمایی کنید.

b.mahsa
چهارشنبه 05 اسفند 1388, 10:02 صبح
سلام
چرا از binding source استفاده نمی کنید؟
هم gride view رو بهش bind کنید هم اون text box هایی که می خواهید رو.

kebriya
چهارشنبه 05 اسفند 1388, 10:14 صبح
راستش من همه 10 فیلد رو به grid، بایند می کنم و فیلدهایی که نمی خواهم دیده شود را مخفی میکنم
visible=false
فقط دقت کن که شماره فیلدها باز هم پشت سرهم است یعنی فیلدهای مخفی هم جزء شمارش حساب میشن اونوقت مشکلت حل میشه

Beginner67
چهارشنبه 31 تیر 1394, 13:23 عصر
سلام.
ببخشید من هم این مشکل رو دارم.
یک دیتاگیرید در فرم دارم و یک دکمه.
میخوام با انتخاب سطر و کلیک روی دکمه در صفحه دیگه ای فیلدها داخل تکست باکس قرار بگیرن.
این کار رو میتونم انجام بدم اما فقط برای سطر اول.
کد این هست:

string d1 = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
f.textBox2.Text = d1;


اما برای سطرهای دیگه باید یک متغیر تعریف کنم و به جای 0 اون متغیر مثلا i رو بذارم.
متغیر رو چجوری باید مقدار بدم؟
از کد دوستمون هم چیزی متوجه نشدم.
ممنون میشم راهنمایی کنید.

oranoos
شنبه 03 مرداد 1394, 09:28 صبح
سلام
شما می تونید همونطور که دوستمون گفتن از e.rowindexبرای به دست آوردن سطر و برای ستون مورد نظر به جای عدد از نام ستون استفاده کنید مثلا ستون idرا بنویسید cell("id") .