PDA

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



jafarpalideh
یک شنبه 23 اردیبهشت 1397, 18:59 عصر
سلام
من تویه فرمم که شامل مستر و دیتیل هست و دوتا گریدویو بالا و پایین،موقعی که رویه دکمه ی f2 کلیک میکنم یه فرم دیگه باز میشه که از طریق پراپرتی اطلاعات رو پاس میدم بهش و ویرایش رو انجام میدم و مشکلی نیست.
حالا وقتی تویه همون فرم مستر دیتیل دکمه ی مثبت رو میزنم یه فرم باز میشه واسه جستجوی اطلاعات که کاربر میاد و توش کد یا نام رو میزنه واسه جستجو
مشکلم اینجاست که از طریق این یکی فرم چطور اطلاعاتی که کاربر میده رو پاس بدم به فرم مستر دیتیل و اونجا بگیرمش

mr.sirwan
دوشنبه 24 اردیبهشت 1397, 11:14 صبح
به روشای مختلفی میشه انجام داد، یک روشش استفاده از ایونت هست که بنده توی این پست (http://barnamenevis.org/showthread.php?543895-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DB%8C%DA%A9-%D9%81%D8%B1%D9%85-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D9%85%D8%A7%D9%85-%D9%81%D8%B1%D9%85-%D9%87%D8%A7-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%D8%A8%D8%A7%D8%B2%DA%AF%D8%B4%D8%AA%DB%8C&p=2382120&viewfull=1#post2382120) کامل توضیح دادم

رامین مرادی
دوشنبه 24 اردیبهشت 1397, 11:42 صبح
میتونید از متغییر استاتیک استفاده کنید. تو فرمی که باز میشه و جستجو انجام میدید نتایج رو داخل متغییر هایی ذخیره کنید که به صورت استاتیک هستند. بعد از بسته شدن فرم مقادیر رو بخونید .

jafarpalideh
دوشنبه 24 اردیبهشت 1397, 11:44 صبح
میتونید از توابع استاتیک استفاده کنید. تو فرمی که باز میشه و جستجو انجام میدید نتایج رو داخل متغییر هایی ذخیره کنید که به صورت استاتیک هستند. بعد از بسته شدن فرم مقادیر رو بخونید .
ممنون بابت پاسختون.
از پراپرتی نمیشه استفاده کرد ؟

رامین مرادی
دوشنبه 24 اردیبهشت 1397, 11:54 صبح
ممنون بابت پاسختون.
از پراپرتی نمیشه استفاده کرد ؟
من کار نکردم تا حالا.

jafarpalideh
دوشنبه 24 اردیبهشت 1397, 11:57 صبح
واضح تر بخوام بگم اینه که از فرم مستر-دیتیل میتونم اطلاعات رو به فرم دیگه انتقال بدم و رو کار انجام بدم .(توسط پراپرتی ها)
ولی واسه فرم جستجو که داده توش وارد میکنم و تویه فرم مستر-دیتیل میخوام استفاده کنم نمیشه . یعنی پراپرتی بر نمیگرده اینور .

mr.sirwan
دوشنبه 24 اردیبهشت 1397, 12:27 عصر
ببینید دوست عزیز، با پراپرتی استاتیک هم میشه اینکارو انجام داد، اما به شخصه اصلا پیشنهاد نمیکنم از این روش استفاده کنین، فرض کنین توی یه تیم دارین کد مینویسین و بقیه قراره با کد شما کار کنن، مسلما تا دقیق واسشون توضیح ندی که از کجا پراپرتی رو مقدار دهی کردی و ... شاید اصلا طرف متوجه نشه، اما استفاده از ایونت خیلی ساده تره، شاید پیاده سازیش واست یکم گنگ باشه اما در نهایت استفاده ازش فقط لازمه یه فراخوانی ایونته، تمام

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

لازم به ذکره که باید فرم جستجو رو بصورت ShowDialog باز کنی، یه نمونه:

public partial MasterForm:Form
{
public static int someField;

private void button1_Click()
{
searchForm search = new searchForm();
search.ShowDialog();
// اینجا میتونی مقدار بازگشتی رو بخونی
this.someField;
}
}

توی فرم جستجو هم به اینصورت مقدار دهی فیلدهای استاتیک رو انجام بده:

MasterForm.someField = 15;

danialafshari
سه شنبه 25 اردیبهشت 1397, 19:48 عصر
با سلام
اول اینکه چون فرم New میشه و Constructor اجرا میشه میتونی از Constructor برای ارسال پارامتر استفاده کنی
دوم اینکه نمونه ارسال پارامتر بین فرم ها توسط پراپرتی رو چندین و چند بار قرار دادم کافی بود که جستجو کنید
ریختن اطلاعات فرم دوم در DataGridView فرم اول (http://barnamenevis.org/showthread.php?547769-%D8%B1%DB%8C%D8%AE%D8%AA%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D9%81%D8%B1%D9%85-%D8%AF%D9%88%D9%85-%D8%AF%D8%B1-DataGridView-%D9%81%D8%B1%D9%85-%D8%A7%D9%88%D9%84&p=2392115#post2392115)
سوم اینکه بهتره جستجو رو در همون صفحه نمایش اطلاعات بزارید و اگر تحقیق کنید اکثر نرم افزارهای تجاری برای راحتی کاربر این کار رو کردند یکی از دلایلش اینه که برای باز کردن فرم جستجو مجبورید از ShowDialog اغلب استفاده کنید و اینطور کاربر همزمان نمیتونه به فرم دیگه ای دسترسی داشته باشه تا وقتی که فرم جستجو رو ببنده البته سلیقه ای هست میل با خودتونه
موفق باشید

jafarpalideh
چهارشنبه 26 اردیبهشت 1397, 07:28 صبح
با سلام
اول اینکه چون فرم New میشه و Constructor اجرا میشه میتونی از Constructor برای ارسال پارامتر استفاده کنی
دوم اینکه نمونه ارسال پارامتر بین فرم ها توسط پراپرتی رو چندین و چند بار قرار دادم کافی بود که جستجو کنید
ریختن اطلاعات فرم دوم در DataGridView فرم اول (http://barnamenevis.org/showthread.php?547769-%D8%B1%DB%8C%D8%AE%D8%AA%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D9%81%D8%B1%D9%85-%D8%AF%D9%88%D9%85-%D8%AF%D8%B1-DataGridView-%D9%81%D8%B1%D9%85-%D8%A7%D9%88%D9%84&p=2392115#post2392115)
سوم اینکه بهتره جستجو رو در همون صفحه نمایش اطلاعات بزارید و اگر تحقیق کنید اکثر نرم افزارهای تجاری برای راحتی کاربر این کار رو کردند یکی از دلایلش اینه که برای باز کردن فرم جستجو مجبورید از ShowDialog اغلب استفاده کنید و اینطور کاربر همزمان نمیتونه به فرم دیگه ای دسترسی داشته باشه تا وقتی که فرم جستجو رو ببنده البته سلیقه ای هست میل با خودتونه
موفق باشید

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