PDA

View Full Version : سوال: انتخاب یک فیلد از datagridveiw



shadidayan
دوشنبه 04 شهریور 1387, 19:42 عصر
سلام
چطور می تونم یک فیلد از datagridveiw را انتخاب کنم به طوری که مقادیر آن رکورد را به من بدهد

sarkhosh
دوشنبه 04 شهریور 1387, 22:26 عصر
یعنی وقتی یه فیلد از یه سطر رو انتخاب کردی مقادیر اون سطر یا حالا رکورد رو بر گردونه؟
فکر کنم اول باید این پراپرتی رو تو گردیت تنطیم کنی

fullselectionmode=rowselect


بعد هم شمره ردیف رو بدست بیاری ..بدین صورت:

idx=datagridview1.selectedrows[0].index
و....دیگه می تونی به مقادیر فبلدها دست بیابی!
مثلا


id=(int)dt.rows[idx]["salary"];

shadidayan
دوشنبه 04 شهریور 1387, 23:39 عصر
سلام
من این تکیه رو نفهمیدم fullselectionmode=rowselect
و این خطا رو می ده:



Error 1 'System.Windows.Forms.DataGridView' does not contain a definition for 'selectedrows' G:\


لطفا راهنمایی کنید.

sarkhosh
سه شنبه 05 شهریور 1387, 00:15 صبح
من این کدها رو همینجا نوشتم
SelectedRows رو اینجوری بنویس
یه ctrl+space هم بزنی درست میشه
و اما اون پراپرتی رو اگه تنطیمکنی با انتخاب یه فیلد از یک رکورد ، کل اون رکورد انتخاب میشه
دیتا گرید یه پراپرتی به نام rowselect داره اونو fullselectionmode بگذار
اون متغیر Id رو هم از جنس فبلد salary گرفتم(int

shadidayan
سه شنبه 05 شهریور 1387, 01:01 صبح
سلام
منظور property ،شما selectionmode هست.من این کارو کردم ولی از index خطا می گرفت.
بعد من می خوام وقتی با موس رو یکی از مقادیر فیلد کلیک کرد اون مقداز زو بر گردونه یا همه رکورد.
لطفا راهنمایی کنید:گیج:
یک سوال دیگه: می خوام با دستورselect مقدار یکی از فیلدا رو بر گردونه چکار کنم؟؟؟؟؟؟؟؟

sarkhosh
سه شنبه 05 شهریور 1387, 01:38 صبح
می خوای اون رکورد رو ویرایش کنی؟؟ دقیقا بگو می خوای چه کار کنی؟من کمی فارسیم بده:d
این یه مثال...وقتی یه سطر انتخاب میشه که با استفاده از متغیرid به تممی مقادیر دسترسی پیدا می کنه


private void toolStripMenuItem1_Click(object sender, EventArgs e)
{

if (dataGridView1.SelectedRows.Count > 0)
{
idx = dataGridView1.SelectedRows[0].Index;
id = (int)dt.Rows[idx]["kotazh"];
}
EditFrm ef = new EditFrm(id);
if(ef.ShowDialog()==DialogResult.OK)
this.refresh();




}
برای اینکه روی هر cell کلیک کردی مقدار اون رو نمایش بده بدین صورت باید عمل کنید
در ایونت cell click مربوط به گرید ویو






private void datagridview1_CellClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(DatagridView1.CurrentCell.Value.To String());
}

shadidayan
سه شنبه 05 شهریور 1387, 17:06 عصر
سلام

id = (int)dt.Rows[idx]["kotazh"];
در این سطر kotazh چیست و این سطر جه کاری رو انجام میده؟
من به جای kotazh نام یک فیلد از نوع int رو نوشتم ولی با این خطا متوقف می شود:
iColumn 'k_t_id' does not belong to table .
بعد هم dataview ام CurrentCell را نمی شناسه
لطفا راهنمایی کنید.ممنون

shadidayan
سه شنبه 05 شهریور 1387, 17:07 عصر
یک سوال دیگه: می خوام با دستورselect مقدار یکی از فیلدا رو بر گردونه چکار کنم؟؟؟؟؟؟؟؟

captain_black81
سه شنبه 05 شهریور 1387, 18:02 عصر
یک کنترل لیبل اضافه کن و ...


label1.databindings.add("text",datagridview1.datasource,datagridview1.columns[X].name)

shadidayan
چهارشنبه 06 شهریور 1387, 00:12 صبح
ممنون از همه که کمک کردین مشکلم حل شد