PDA

View Full Version : حرفه ای: اعمال تغییرات همزمان در فرم پرنت



araz_pashazadeh
چهارشنبه 04 بهمن 1391, 19:00 عصر
با عرض سلام خدمت دوستان.
من در داخل فرم1 ،فرم2 را باز میکنم می خوام وقتی کاربر اطلاعاتی که در فرم2 وارد کرد همزمان تغییراتی در فرم 1 که همان فرم اصلی هستش بدم.
ولی از انجای که ابجک جدیدی صدا زده میشه و تازمانی که فرم 2 بسته نشده نمیشه به فرم 1 دسترسی داشت و یا اگر هم اطلاعات اون را از طریق متغییرهای استاتیک تغییر بدیم باز دیده نمیشه چون صفحه بروزرسانی نشده.
برای این کار باید از تکنیک خاصی استفاده کرد؟
لطفا من را راهنمایی کنین.

plus
چهارشنبه 04 بهمن 1391, 20:21 عصر
اگه فرم دوم رو به صورت ShowDialog باز نکنید، میتونید از فرم دو، تغییراتی که میخواین رو در فرم 1 بدین.

araz_pashazadeh
شنبه 07 بهمن 1391, 16:58 عصر
اگه فرم دوم رو به صورت ShowDialog باز نکنید، میتونید از فرم دو، تغییراتی که میخواین رو در فرم 1 بدین.
من با Show باز میکنم.
آخه چطوری لیبل موجود در فرم 1 را بروزرسانی کنم؟
من هنوز در فرم 2 هستم ،لطفا کمی بیشتر توضیح بدین.
اگه نمونه کدی در این زمینه باشه خیلی بهتر.

hamid_hr
شنبه 07 بهمن 1391, 17:24 عصر
سلام
تو فرم فرزندت اينو بنويس
private event MethodInvoker _BtnExportExcel;

public MethodInvoker PrintCompany
{
get { return _BtnExportExcel; }
set { _BtnExportExcel = value; }
}

تو فرم پدرتم اينو

public FrmPrintPreview()
{
InitializeComponent();
Flp.PrintCompany += new MethodInvoker(LoadCrystalReport);
}


private void LoadCrystalReport1()
{
/// خب اينجا ليبلتو بروز رساني كن
‌‌}

hamid_hr
شنبه 07 بهمن 1391, 17:27 عصر
يادم رفت

اون شي flp تو فرم پدر همون شي فرم فرزنده كه باهاش اونو Show كردين

تو فرم فرزندت هر جا بنويسي PrintCompany(); اون تابع LoadCrystalReport1() تو فرم پدر اجرا ميشه

araz_pashazadeh
چهارشنبه 11 بهمن 1391, 15:40 عصر
ممنون از راهنمایی سازنده شما.
در این تکه کد و یا تابع ای که تعریف شده نمیشه مقداری را دریافت و یا ارسال کرد؟
منظورم پارامتر برای تابع هستش؟
برای مثال از فرم فرزند به والد و یا برعکس.

hamid_hr
چهارشنبه 11 بهمن 1391, 19:08 عصر
سلام
بايد يك متغير استاسيك تعريف كني و مقاديرتو داخلش بريزي
البته من اينطوري ازش استفاده ميكنم
شايد راه ديگه اي باشه كه من بلد نيستم
اساتيد بهتر ميتونن كمك كنن

araz_pashazadeh
پنج شنبه 12 بهمن 1391, 09:11 صبح
منظورم در تابع LoadCrystalReport1() هستش که تعریف کرده بودین.
به نظر من تعریف متغییر استاتیک کار درستی نیست.
از دوستان کسی اطلاعاتی در این مورد دار ممنون میشم راهنمایی کنه.

araz_pashazadeh
چهارشنبه 02 اسفند 1391, 16:01 عصر
با استفاده از راهنمایی دوست عزیزم(hamid_hr) تونستم اطلاعات را بین دوتا فرم بروزرسانی کنم.
اگه فرم سه تا بود چطور؟
درواقع از فرم 1، فرم2 را بازم میکنم کاربر حق انتخاب داره انتخاب فرم3 باز میشه می خوام تغییرانی که در فرم3 میده در فرم1 نمایش داده بشه.
تکه کد بالا برای سه تا فرم متاسفانه جواب نداد.