PDA

View Full Version : انتقال اطلاعات بین دو فرم



oracle_dba
شنبه 03 مهر 1389, 18:43 عصر
من دو فرم دارم که در فرم اوی یک دکمه وجود دارد و چند text box که با زدن دکمه فرم 2 باز میشود . در فرم 2 یک دیتا گرید وجود دارد که که کاربر رکورد مورد نظر خودرا انتخاب میکند و با زدن دکمه انتخاب اطلاعات اون رکورد به editbox های فرم اول منتقل می شود
میشه بگید چطور باید اینکار رو انجام بدهم ؟
http://oraclegroup.persiangig.com/image/Temp/form%201.jpg
http://oraclegroup.persiangig.com/image/Temp/form%202.jpg

csharpprogramer88
شنبه 03 مهر 1389, 19:06 عصر
http://barnamenevis.org/forum/showthread.php?t=248907
اين تاپيك تا حدودي مشكل شما را حل ميكند.

ظاهرا شما در فرم 2 اطلاعات را از يك جدول ميخونيد و در گريد ميريزيد پس حتما شما يك ستون بعنوان كليد اصلي داريد پس ميتونيد اون كليد اصلي را از فرم 2 به فرم اول انتقال بديد و يك دستور select بنويسيد كه از همون جدول انتخاب كند به شرطي كه برابر اون كليد اصلي باشه
البته روش هاي بهتري هم وجود دارد در اين روش هم شما بايد تلفيقي از اون تاپيك و اين روش را پي گيري كنيد
موفق باشيد

mmd2009
شنبه 03 مهر 1389, 19:19 عصر
با سلام

یک مثال برات زدم امیدوارم همونی باشه که میخوای. البته دقیقا همون کاری رو میکنه که شما گفتی

Encomp_Amini
شنبه 03 مهر 1389, 19:23 عصر
سلام
قبلا دوستان در مورد این مشکل تاپیک هایی را گذاشتند.
بهتره در مورد کلمه Property جستجو کنید حتما به نتیجه خوبی می رسید

cardano7
شنبه 03 مهر 1389, 19:54 عصر
سلام
در فرم دوم مقادیر خروجی را به شکل public تعریف کن و در فرم اول پس از اجرای فرم دوم، اونا رو بخون.

oracle_dba
جمعه 09 مهر 1389, 19:22 عصر
http://barnamenevis.org/forum/showthread.php?t=248907
اين تاپيك تا حدودي مشكل شما را حل ميكند.

ظاهرا شما در فرم 2 اطلاعات را از يك جدول ميخونيد و در گريد ميريزيد پس حتما شما يك ستون بعنوان كليد اصلي داريد پس ميتونيد اون كليد اصلي را از فرم 2 به فرم اول انتقال بديد و يك دستور select بنويسيد كه از همون جدول انتخاب كند به شرطي كه برابر اون كليد اصلي باشه
البته روش هاي بهتري هم وجود دارد در اين روش هم شما بايد تلفيقي از اون تاپيك و اين روش را پي گيري كنيد
موفق باشيد

این روشی که گفتیر عالیه . ولی چطور ارسال کنم اون مقدار رو
من زیاد وارد نیستم اگه میشه جزئی برام توضیح بدید

sarapepors
جمعه 09 مهر 1389, 21:55 عصر
برای انتقال از فرم 1 به 2 یه باتن و یه تکست باکس تو فرم اول میزاری این کد رو تو باتن مینویسی


private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.st = textBox1.Text;
frm.Show();
}

فرم 2


public string st = "";
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
label1.Text = st;
}

این مال زمانیه که بخوای از فرم اول مقداری رو به فرم دومی که باز می کنی منتقل کنی ام اگه خواستی از فرم 2 که باز شده به فرم 1 مقدار بفرستی بگو تا اون کد رو هم بزارم برات

group45
جمعه 09 مهر 1389, 21:59 عصر
شما برای هر تکست باکس یه متغیر رشته ای بگیر و اینها رو تو فرم1 پابلیک تعریف کن.بعد تو رویداد کلید فرم2 بنویس:


form1.st1=datagrid1.selectedrows[0].column[0].to string();

حالا تا ته متغیر دوم رو به ستون بعد بده تا آخر....بعد در رویداد لود فرم1 این متغیرا رو تو تکست باکس بریز

اگه باز نفهمیدی برنامتو بزار درستش کنم برات

Kurdia
جمعه 09 مهر 1389, 22:00 عصر
من همین سوال رو پرسیدم و از این روش رفتم
اول خوب بخون بعد انجام بده، با ساختار تابع که آشنایی داری؟
ببین، دو فرم داریم
فرم یک : FRMB1
فرم دو : Reports

در Reports این رو پیدا کن




public Reports()
{

InitializeComponent();
}


یک مقدار از پیش ساخته شده است و نباید دستی بسازیش
به همچین چیزی تغییرش می دی




public Reports(string strid)
{
idstring = strid;

InitializeComponent();
}



این خط رو هم توی فرم بوجود بیاد




private string idstring;
//-------------------------- می تونی بجای رشته ای از نوع دیگری که لازمه و یا مقدار های بیشتر هم تعریف کنی اما private رو فراموش نکن چون خارج از تابع تولید می شه



حالا به فر میک برو و فرم دو رو همچین فراخوانی کن




Reports rpt = new Reports(idheader);
rpt.ShowDialog();


مقدار idheader همون فیلد id دیتابیسه که autonumber است

می تونی مقادیر بیشتری رو هم بفرستی
به شرطی که توی فرم دو تغییرات رو اعمال کنی
از اون طرف در فرم دو هم هرجایی که بخواهی می تونی idstring فراخوانی کنی و مثلا بگی بر اساس idstring جستجو کن ودر گریدویو نمایش بده