PDA

View Full Version : سوال: بدست آوردن مقادیر یک Row در یک دیتاگرید هنگام انتخاب کاربر



dark-man
سه شنبه 05 آذر 1387, 11:16 صبح
سلام خدمت همه اساتید .
سوالی دارم که جوابش خیلی برام مهمه ممنون میشه اگه کسی در این مورد کمکم کنه .
من تو یک برنامه ویندوزی 2 تا فرم دارم در فرم 1 ، یک دیتاگرید دارم که به یه Table تو دیتابیس وصله و اطلاعات اون رو نشون میده . در فرم 2 ، چند تا TextBox دارم . حالا می خوام وقتی کاربر یکی از Row های دیتاگرید رو انتخاب کرد با زذن دکمه انتخاب که در فرم 1 هست بتونه اطلاعات Row انتخاب شده رو به TextBox های فرم 2 منتقل کنه . قابل ذکر هست که TextBox های فرم 2 خاصیت فقط-خواندنی دارند .
ممنون میشم در این مورد کمکم کنید .

masoud_parsa
سه شنبه 05 آذر 1387, 11:36 صبح
خوب مشكلت چيه يكم بيشتر توضيح بده در موردش

dark-man
سه شنبه 05 آذر 1387, 11:38 صبح
مشکل اینه که چه جوری این کار رو باید انجام بدم؟

dark-man
سه شنبه 05 آذر 1387, 11:40 صبح
یعنی چه جوری باید اطلاعات Cell های یک Row رو بدست بیارم . البته کاربر ممکنه بصورت تصادفی یک row رو انتخاب کنه . پس از انتخاب یک row و زدن دکمه انتخاب که در فرم 1 هست اطلاعات پاس داده بشه به TextBoxهای موجود در فرم 2

masoud_parsa
سه شنبه 05 آذر 1387, 11: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, 11:58 صبح
ایم کد و همچنین کدهای مشابه عمل نکرد . حالتی وجود داره اینه که در واقع فرم اصلی برنامه فرم 2 هست . برنامه وقتی اجرا بشه فرم 2 باز میشه و بوسیله یک دکمه دیگه فرمی که توش دیتاگرید هست فراخوانی میشه . پس ظاهرا" باید بعد از زدن دکمه انتخاب به نوعی فرم اصلی که فرم 2 هست بروز بشه . در واقع مشکل اصلی اینه که چه جوری این کار رو انجام بدم.

dark-man
سه شنبه 05 آذر 1387, 12:19 عصر
ایم کد و همچنین کدهای مشابه عمل نکرد . حالتی وجود داره اینه که در واقع فرم اصلی برنامه فرم 2 هست . برنامه وقتی اجرا بشه فرم 2 باز میشه و بوسیله یک دکمه دیگه فرمی که توش دیتاگرید هست فراخوانی میشه . پس ظاهرا" باید بعد از زدن دکمه انتخاب به نوعی فرم اصلی که فرم 2 هست بروز بشه . در واقع مشکل اصلی اینه که چه جوری این کار رو انجام بدم.



راه دیگه ای که دقیق تر باشه هست؟

masoud_parsa
سه شنبه 05 آذر 1387, 12:20 عصر
اگه ميشه كد برنامتو بذار اينجا من ببينم

dark-man
سه شنبه 05 آذر 1387, 12: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, 12: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, 12: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;
}


ممنون این کد جواب داد . به همین شکل که گفتید جواب داد . ممنون .:لبخندساده: