PDA

View Full Version : سوال: انتقال اطلاعات یک سطر از datagrid فرم فرزند به textbox های فرم پدر



ali2121
سه شنبه 15 اسفند 1391, 11:23 صبح
درود

من دو فرم دارم ، یک فرم پدر که چند texbox دارد ، دو فرم فرزند که یک دیتاگرید دارد. من میخام با کلیک بر روی یک

سطر از دیتاگرید فرو فرزند اطلاعات آن سطر به تکست باکس هاس فرم پدر انتقال یابد

فقط ، فقط نمیخام یک فرم پدر جدید ایجاد شود میخام اطلاعات دیتاگرید فرم فرزند به تکست باکس های فرم پدر که قبلا ، که قبلا باز بوده ریخته شود ؛ یعنی فرم پدر که قبلا باز بوده ریخته شود فرم جدید ایجاد نشود .new رو نمیخام

pedram.11
سه شنبه 15 اسفند 1391, 11:53 صبح
درود
باید یک event تعریف کنید تا هروقت که روی آیتم های دیتاگرید کلیک کردید از طریق اون، اطلاعات اون سطر برگرده، به اینصورت:
توی فرم فرزند:
public delegate void dgwRowHandler(DataGridViewRow dtgvr);
public event dgwRowHandler OnNewRow;
public Form2()
{
InitializeComponent();
this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler( this.dataGridView1_CellClick);
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (OnNewRow != null)
OnNewRow(dataGridView1.CurrentRow);
}
و توی فرم والد:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.OnNewRow += new Form2.dgwRowHandler(frm2_OnNewRow);
frm2.Show();
}
private void frm2_OnNewRow(DataGridViewRow dtgvr)
{
textBox1.Text = dtgvr.Cells["Field1"].Value.ToString();
textBox2.Text = dtgvr.Cells["Field2"].Value.ToString();
}

با این کارا که انجام دادیم وقتی یک سلول از دیتاگرید ویو انتخاب میشه سطر مربوط به اون سلول به فرم والد برمیگرده و عملیات پر کردن توی تکست باکس ها توی متد frm2_OnNewRow انجام میشه، Field1 و Field2 همون اسامی ستون هاتون هستن

ali2121
سه شنبه 15 اسفند 1391, 12:51 عصر
درود

فرم والد نام ستون ها خطا میده اندیسش 0 ،1 و غیره هم میزارم خطا میده

pedram.11
سه شنبه 15 اسفند 1391, 13:05 عصر
به اینصورت تغییر بدید:
private void frm2_OnNewRow(DataGridViewRow dtgvr)
{
if(dtgvr.Cells["Field1"].Value != null)
textBox1.Text = dtgvr.Cells["Field1"].Value.ToString();
if(dtgvr.Cells["Field2"].Value != null)
textBox2.Text = dtgvr.Cells["Field2"].Value.ToString();
}

rain123456
سه شنبه 15 اسفند 1391, 13:09 عصر
سلام :

دوستان یک فرم طراحی کردم که ردیف اول یک radiobutton به نام "rdbedit2" قرار دادم . دو مشکل دارم :

اول اینکه میخوام وقتی روی radiobutton هر سطر کیلیک شد او سطر گرید ویو select شه

دوم اینکه فقط یک radiobutton بتونه انتخاب شه با هر کلیک

این دستورای selectindex رو خوندم ، اما هر چی باهاش سرو کله زدم نتونستم کاری از پیش ببرم ، فرستادنش به چک باکس ها رو نوشتم و با select خود گرید ویو کار میکنه ، اما میخوام برای select از radiobutton استفاده شه .

اون قسمتای اصل کاریش هم به این شرحه :


private void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{

}

<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="rdbedit2" runat="server" onclick="GridView1_SelectedIndexChanged" />
</ItemTemplate>
</asp:TemplateField>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


ممنون میشم اساتید راهنمایی کنند

ali2121
سه شنبه 15 اسفند 1391, 14:30 عصر
درود
باز هم ستون خطا میده فکر کنم باید CurrentRow اضافه بشه که اضافه می کنم باز هم خطا میده

pedram.11
سه شنبه 15 اسفند 1391, 14:37 عصر
لطف کنید متن ارور رو بفرمائید

ali2121
سه شنبه 15 اسفند 1391, 15:07 عصر
Column named namek cannot be found.
Parameter name: columnName

pedram.11
سه شنبه 15 اسفند 1391, 15:24 عصر
توی اسم ستون دقت کنید، مشکل همینجاست

ali2121
سه شنبه 15 اسفند 1391, 15:48 عصر
درود
این اطلاعات را در فرم فرزند دکمه ای که قراره اطلاعات سطر را به تکست باکس فرم پدر انتقال بده بنویسید و تکست باکس فرم پدر را mofifiers=public کنید آگر سطر دیتاگرید انتخاب اطاعات سطر به تکست باکس انتقال مییاید
Form6 ff = new Form6();

ff.textBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
ff.textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
ff.comboBox1.Text= dataGridView1.CurrentRow.Cells[2].Value.ToString();
ff.textBox3.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
ff.textBox4.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
ff.textBox5.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();
ff.textBox6.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString();

ff.ShowDialog();
this.Hide();

ali2121
سه شنبه 15 اسفند 1391, 15:49 عصر
راستش اسم ستون درسته نمیدونم مشکل کجاست

اگه پروژه ای دارید بزارید ممنون میشم

pedram.11
سه شنبه 15 اسفند 1391, 16:12 عصر
بفرمائید دوست عزیز
100926

ali2121
سه شنبه 15 اسفند 1391, 20:53 عصر
فکر کنم کدتون با بانک مشکل داره چون من هم مثل پروژه تون دو تا ستون به دیتاگرید اضافه کردم جواب داد ولی با بانک اطلاعاتی مشکل داره
اگه وقت داشتید لطفا با بانک امتحان کنید خبرشو بهم بدید
یک دنیا سپاس

khokhan
سه شنبه 15 اسفند 1391, 21:49 عصر
درود بر شما

آقا با اجازتون من هم یه دستی تو کدهاتون بردم واینجوری درستش کردم اگر هم بد بود بایستی ببخشین :لبخند:

بدرود