View Full Version : سوال: بدست آوردن مقادیر یک Row در یک دیتاگرید هنگام انتخاب کاربر
dark-man
سه شنبه 05 آذر 1387, 12:16 عصر
سلام خدمت همه اساتید .
سوالی دارم که جوابش خیلی برام مهمه ممنون میشه اگه کسی در این مورد کمکم کنه .
من تو یک برنامه ویندوزی 2 تا فرم دارم در فرم 1 ، یک دیتاگرید دارم که به یه Table تو دیتابیس وصله و اطلاعات اون رو نشون میده . در فرم 2 ، چند تا TextBox دارم . حالا می خوام وقتی کاربر یکی از Row های دیتاگرید رو انتخاب کرد با زذن دکمه انتخاب که در فرم 1 هست بتونه اطلاعات Row انتخاب شده رو به TextBox های فرم 2 منتقل کنه . قابل ذکر هست که TextBox های فرم 2 خاصیت فقط-خواندنی دارند .
ممنون میشم در این مورد کمکم کنید .
masoud_parsa
سه شنبه 05 آذر 1387, 12:36 عصر
خوب مشكلت چيه يكم بيشتر توضيح بده در موردش
dark-man
سه شنبه 05 آذر 1387, 12:38 عصر
مشکل اینه که چه جوری این کار رو باید انجام بدم؟
dark-man
سه شنبه 05 آذر 1387, 12:40 عصر
یعنی چه جوری باید اطلاعات Cell های یک Row رو بدست بیارم . البته کاربر ممکنه بصورت تصادفی یک row رو انتخاب کنه . پس از انتخاب یک row و زدن دکمه انتخاب که در فرم 1 هست اطلاعات پاس داده بشه به TextBoxهای موجود در فرم 2
masoud_parsa
سه شنبه 05 آذر 1387, 12:54 عصر
بايد از كدي شبيه اين كد استفاده كني عزيزم
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.textBox1.Text = (string)dataGridView1.CurrentRow.Cells[0].Value;
frm2.textBox2.Text = (string)dataGridView1.CurrentRow.Cells[1].Value;
frm2.textBox3.Text = (string)dataGridView1.CurrentRow.Cells[2].Value;
frm2.Show();
}
dark-man
سه شنبه 05 آذر 1387, 12:58 عصر
ایم کد و همچنین کدهای مشابه عمل نکرد . حالتی وجود داره اینه که در واقع فرم اصلی برنامه فرم 2 هست . برنامه وقتی اجرا بشه فرم 2 باز میشه و بوسیله یک دکمه دیگه فرمی که توش دیتاگرید هست فراخوانی میشه . پس ظاهرا" باید بعد از زدن دکمه انتخاب به نوعی فرم اصلی که فرم 2 هست بروز بشه . در واقع مشکل اصلی اینه که چه جوری این کار رو انجام بدم.
dark-man
سه شنبه 05 آذر 1387, 13:19 عصر
ایم کد و همچنین کدهای مشابه عمل نکرد . حالتی وجود داره اینه که در واقع فرم اصلی برنامه فرم 2 هست . برنامه وقتی اجرا بشه فرم 2 باز میشه و بوسیله یک دکمه دیگه فرمی که توش دیتاگرید هست فراخوانی میشه . پس ظاهرا" باید بعد از زدن دکمه انتخاب به نوعی فرم اصلی که فرم 2 هست بروز بشه . در واقع مشکل اصلی اینه که چه جوری این کار رو انجام بدم.
راه دیگه ای که دقیق تر باشه هست؟
masoud_parsa
سه شنبه 05 آذر 1387, 13:20 عصر
اگه ميشه كد برنامتو بذار اينجا من ببينم
dark-man
سه شنبه 05 آذر 1387, 13:20 عصر
بايد از كدي شبيه اين كد استفاده كني عزيزم
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.textBox1.Text = (string)dataGridView1.CurrentRow.Cells[0].Value;
frm2.textBox2.Text = (string)dataGridView1.CurrentRow.Cells[1].Value;
frm2.textBox3.Text = (string)dataGridView1.CurrentRow.Cells[2].Value;
frm2.Show();
}
راه دیگه ای که دقیق تر باشه هست؟
masoud_parsa
سه شنبه 05 آذر 1387, 13:40 عصر
پس شما بايد توي فرم اصليت فرم دومت كه ديتا گريد توش هست رو اينجوري تعريف كني
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
frm1.Owner = this;
frm1.Show();
}
بعد توي فرمي كه ديتا گريد توش هست اي جوري كد بنويسي
private void button1_Click(object sender, EventArgs e)
{
((Form2)Owner).textBox1.Text = (string)dataGridView1.CurrentRow.Cells[0].Value;
((Form2)Owner).textBox2.Text = (string)dataGridView1.CurrentRow.Cells[1].Value;
((Form2)Owner).textBox3.Text = (string)dataGridView1.CurrentRow.Cells[2].Value;
}
dark-man
سه شنبه 05 آذر 1387, 13:52 عصر
پس شما بايد توي فرم اصليت فرم دومت كه ديتا گريد توش هست رو اينجوري تعريف كني
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
frm1.Owner = this;
frm1.Show();
}
بعد توي فرمي كه ديتا گريد توش هست اي جوري كد بنويسي
private void button1_Click(object sender, EventArgs e)
{
((Form2)Owner).textBox1.Text = (string)dataGridView1.CurrentRow.Cells[0].Value;
((Form2)Owner).textBox2.Text = (string)dataGridView1.CurrentRow.Cells[1].Value;
((Form2)Owner).textBox3.Text = (string)dataGridView1.CurrentRow.Cells[2].Value;
}
ممنون این کد جواب داد . به همین شکل که گفتید جواب داد . ممنون .:لبخندساده:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.