PDA

View Full Version : سوال: انتقال اطلاعات سطر انتخاب شده در datagridview در يك فرم به textboxهای يك فرم ديگر



yas2010
دوشنبه 01 شهریور 1389, 11:52 صبح
معادل كد زير در C# واسه انتقال اطلاعات سطر انتخاب شده در گريد ويو در يك فرم به تكست باكي هاي يك فرم ديگر
Dim frm2 As New edit_user

Dim str_1 As String

(str_1 = bs2(DataGridView1.CurrentRow.Index)("id
frm2.ShowDialog
(bs2.Position = bs2.Find("id", str_1

shima2006
دوشنبه 01 شهریور 1389, 12:13 عصر
اول از همه باید تویه فرم دوم تمام تکست باکس ها رو به فیلدهایه مورد نظر در دیتابیس Bind کنی
و بعد باید در فرم اول کد زیر را بنویسی


private void dataGridView1_Doubleclick(object sender, EventArgs e)
{
Form2 f=new Form2();
f.customersBindingSource.DataSource = this.dataSet1;
f.customersBindingSource.Position = this.customersBindingSource.Position;
f.Show();
}

اگه موفق نشدی خبر بده

reza.biz90
دوشنبه 01 شهریور 1389, 14:46 عصر
در سي شارپ به صورت عادي دسترسي به مشخصه هاي فرم هاي ديگر، غير ممكن است. براي ارسال مقدار به فرمهاي ديگر مي توان در آن فرم يك فيلد static ايجاد كرد و در فرم فراخوان آن را مقدار داد:




// second form:
public static string myStaticField = "";

private void Form_Load(object sender, EventArgs e)
{
otherTextBox.Text = myStaticField;
}
// in first form
SecondForm.myStaticField = sampleTextBox.Text;
SecondForm frm = new SecondForm();
frm.Show();


اين يكي از راه هاي ارسال مقدار به فرم ديگه هستش. راه ديگه استفاده از سازنده ي فرم دوم به صورت زير:




// in second form
public SecondForm(string name) : this()
{
nameTextBox.Text = name;
}

// in first form
SecondForm frm = new SecondForm(myNameTextBox.Text);
frm.Show();


حالا براي به دست آورن داده هاي موجود توي ديتا گريد بايد به صورت زير عمل كرد:




long ID = long.Parse(DataGridView1["ID", 0].Value.ToString());
// or
long ID = long.Parse(DataGridView1.Rows[0].Columns["ID"].Value.ToString());


حالا اين مقادير رو مي شه با استفاده از سازنده و يا متغير static به فرم دوم بفرستي

به سايت من هم سر بزن
www.irProject.net (http://www.irProject.net)

shima2006
دوشنبه 01 شهریور 1389, 15:03 عصر
فکر می کنم اگه از روش من جلو برن خیلی راحت تر و سریع تر جواب می گیرن!

reza.biz90
دوشنبه 01 شهریور 1389, 15:06 عصر
مطلبي كه شما گفتين درسته ولي براي اين مثال.

اگه برنامه ي ديگه اي داشته باشيم كه از پايگاه داده استفاده نمي كنه استفاده از روش شما درست نيست و بايد از راه حل كلي تري استفاده كرد.

cheshm6k
دوشنبه 01 شهریور 1389, 15:21 عصر
با سلام

با کمال احترام خدمت این دوست عزیز reza.biz90

اما باید بگم که راههایی وجود داره که یکیش اینه

فرض کنید تو Form2 یه تکست باکس داریم بنام txtID حالا داریم:



Form2 f2 = newForm2();
f2.Controls["txtID"].Text = "salam";
f2.Show();

pystar
دوشنبه 01 شهریور 1389, 15:23 عصر
با سلام
در تكميل جواب reza.biz90 و cheshm6k در رويداد كليك datagridview اين كد رو بنويس: مثلا ميخواي مقدار ستون اول رو ارسال كني به تكس باكسي به اسم txtid


Form2 f2=new Form2();
f2.Controls["txtid"].text=datagridview.currentrow.column[0].value.tostring();
f2.showdialog();

reza.biz90
دوشنبه 01 شهریور 1389, 15:45 عصر
با سلام

با کمال احترام خدمت این دوست عزیز reza.biz90

اما باید بگم که راههایی وجود داره که یکیش اینه

فرض کنید تو Form2 یه تکست باکس داریم بنام txtID حالا داریم:



Form2 f2 = newForm2();
f2.Controls["txtID"].Text = "salam";
f2.Show();


آره مطلبي كه گفتين درسته ولي باز بايد حواستون باشه كه اگه txtID توي يك GroupBox قرار داشته باشه، خط دوم دستوراتتون خطاي زمان اجرا مي ده

daivid_ d31r1
دوشنبه 01 شهریور 1389, 22:34 عصر
سلام
میتونی خاصیت modyfiyer(مٌدیفایر)تکست باکس های فرم دوم رو پابلیک کنی و به راحتی از فرم اول به اونا دسترسی داشته باشی
-------------------------------------------
دیشب به سیل اشک ره خواب میزدم
نقشی به یاد روی تو بر آب میزدم

mmd2009
سه شنبه 02 شهریور 1389, 00:31 صبح
با سلام خدمت daivid_ d31r1 (http://www.barnamenevis.org/forum/member.php?u=94458)

این روشی که شما گفتی کار میکنه ولی اصولی نیست.

موفق باشید

بهترین روش استفاده از پراپریتی هست ( یا حداقل معیار )

نمونه هم زیاد هست و حتی خود من اموزش ویدئویی هم گذاشتم.

mf_007
سه شنبه 02 شهریور 1389, 01:11 صبح
با سلام خدمت daivid_ d31r1 (http://www.barnamenevis.org/forum/member.php?u=94458)

این روشی که شما گفتی کار میکنه ولی اصولی نیست.

موفق باشید

بهترین روش استفاده از پراپریتی هست ( یا حداقل معیار )

نمونه هم زیاد هست و حتی خود من اموزش ویدئویی هم گذاشتم.

میشه لطفا لینک این آموزش رو بزارید

yas2010
سه شنبه 02 شهریور 1389, 12:57 عصر
(str_1 = bs2(DataGridView1.CurrentRow.Index)("id
مشكل من ريختن اطلاعات توي اين رشته است يا به بيندينگ سورس ارور ميده يا به گريد ويو

mmd2009
سه شنبه 02 شهریور 1389, 13:01 عصر
اینم ادرس لینک که تو وبلاگمه

http://learn-csharp.blogfa.com/post-19.aspx

Meysamkh
سه شنبه 02 شهریور 1389, 13:19 عصر
سلام دوستان
اگه بجای یک textbox یک combobox داشته باشیم و بخواهیم پس از bind ویرایش هم بکنیم انوقت چه راه حلی پیشنهاد می کنید.

mahboube
سه شنبه 02 شهریور 1389, 13:27 عصر
كافيه تكس باكساي فرمي كه قراره توش بنويسيو modifiers شون رو Public كني اونوقت تو هر فرمي بهشون دسترسي داري.
موفق باشي.

Meysamkh
سه شنبه 02 شهریور 1389, 13:52 عصر
كافيه تكس باكساي فرمي كه قراره توش بنويسيو modifiers شون رو Public كني اونوقت تو هر فرمي بهشون دسترسي داري.
موفق باشي.

Public کردن کنترلها درون برنامه کار Safe ی نیست.

mahboube
سه شنبه 02 شهریور 1389, 14:08 عصر
Public کردن کنترلها درون برنامه کار Safe ی نیست.
ميشه يكم بيشتر بگين.
چه مشكلي پيش مياره؟

Meysamkh
سه شنبه 02 شهریور 1389, 14:17 عصر
وقتی کنترلی Public تعریف بشه , از همه جای برنامه قابل دسترسیه و می توان ازش instance ساخت. این برنامه راحت قابل هک شدنه.
علاوه براین کار استانداردی نیست , در حالی که راههای دیگه ای هم برای دسترسی به یک کنترل وجود داره.مثلا تعریف property برای اون کنترل و ...

yas2010
سه شنبه 02 شهریور 1389, 18:05 عصر
من ميخام اطلاعات رو جستجو كنم نتيجه تو گريد نمايش داده شه بعد وقتي رو سطر مورد نظر كليك كردم فرم ويرايش باز بشه و اطلاعات مربوط به تكست باكس ها انتقال پيدا كنه كدشو ميشه لطف كنين

cheshm6k
سه شنبه 02 شهریور 1389, 23:11 عصر
آره مطلبي كه گفتين درسته ولي باز بايد حواستون باشه كه اگه txtID توي يك GroupBox قرار داشته باشه، خط دوم دستوراتتون خطاي زمان اجرا مي ده

با سلام

اینم راه داره دوست عزیز . فرض کنید GroupBox اسمش gb باشه . فقط کافیه modifiresش رو بزارین public بعد داریم



Form2 f2 = newForm2();
f2.gb.Controls["textBox1"].Text = "df";
f2.ShowDialog();

mostafa2426
چهارشنبه 04 دی 1392, 22:34 عصر
سلام . شرمنده نخواستم تاپیک جدید ایجاد کنم تو همین تاپیک مطرح میکنم سوالمو .
من یه فرم دارم که کارش لیست کردن اطلاعاتم هست . حالا می خوام رو اطلاعات که کلیک میکنم برم تو یک فرم جدید و بتونم از اون اطلاعات استفاده کنم که میتونه شامل ویرایش کردن و انجام محاسبات روی اونا باشه .
ممنون میشم راهنمای کنید چطوری اطلاعات رو فراخانی کنم