نمایش نتایج 1 تا 13 از 13

نام تاپیک: اعمال تغییرات به صورت RunTim به فرم مادر

  1. #1
    کاربر دائمی آواتار benighted.boy
    تاریخ عضویت
    مهر 1385
    محل زندگی
    مشهد
    سن
    35
    پست
    109

    اعمال تغییرات به صورت RunTim به فرم مادر

    با سلام.
    من تو برنامم یه فرم فرزند دارم که جهت تنظیمات محیط برنامه توسط کاربره (تنظیماتی مثل تصویر زمینه و ... )
    این تنظیمات داخل متغییر هایی که در Setting تعریف کردم ذخیره میشه .حالا مشکلم اینجاست که میخوام کاربر هر کدام از تنظیمات رو تغییر داد بلافاصله در فرم مادر ایجاد شه .اما تا برنامه بسته نشه و دوباره باز نشه تنظیمات اعمال نمیشه .
    این هم یه تکه از کد برنامم :
                OpenPicture.Filter = "Picture(*.jpg)|*.jpg|Bittmap(*.bmp)|*.bmp";
    OpenPicture.FilterIndex = 1;
    OpenPicture.Title = "انتخاب تصویر زمینه";
    if (OpenPicture.ShowDialog() == DialogResult.OK)
    {
    Properties.Settings.Default.StrPathPictureFie = OpenPicture.FileName;
    Properties.Settings.Default.Save();
    pictureBox1.BackgroundImage = Image.FromFile(Properties.Settings.Default.StrPath PictureFie);
    (new frm_main()).BackgroundImage = Properties.Settings.Default.StrPathPictureFie;
    }

  2. #2
    کاربر دائمی آواتار ARA
    تاریخ عضویت
    آبان 1383
    محل زندگی
    Bad Sector
    پست
    448
    میشه کد کامل بگذاری

    این چیزی که من میبینم شما فرم اصلیتون رو new کردین این داخل کدفرزنداتونه

    من معمولا یک event تعریف میکنم که هر وقت تغییر کرد event اجرا شه

  3. #3
    یا می تونید فرم اصلی تون را به عنوان پارامتر به فرم دوم بفرستید و تغیرات رو روی پارامتر اعمال کنید

  4. #4
    کاربر دائمی آواتار benighted.boy
    تاریخ عضویت
    مهر 1385
    محل زندگی
    مشهد
    سن
    35
    پست
    109
    من فرم اصلی رو به عنوان پارامتر به فرم فرزند فرستادم اما جواب نداد .

  5. #5
    اگه ممکنه پروژتون رو بزارید ببینبمش

  6. #6
    خوب عزیز نباید هم تغییراتت اعمال بشه
    چون شما اومدین و یک آبجکت جدید از فرم اصلیتون ساختین که هیچ ربطی به فرم اصلی که الان در حال اجرا هست نداره

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  7. #7
    کاربر دائمی آواتار benighted.boy
    تاریخ عضویت
    مهر 1385
    محل زندگی
    مشهد
    سن
    35
    پست
    109
    خوب مشکل منم درست همین جاست .توی زبانهایی مثل VB6 که فرم رو به طور مستقیم Show میکردیم این مشکلات نبود اما اینجا object می سازیم این مشکل هست .
    من از evnet استفاده کردم اما تا فرم بسته نشه اعمال نمیشه
    از متغیر Static استفاده کردم اما جواب نداد
    حالا چه کار میشه کرد ؟

  8. #8
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط benighted.boy مشاهده تاپیک
    خوب مشکل منم درست همین جاست .توی زبانهایی مثل VB6 که فرم رو به طور مستقیم Show میکردیم این مشکلات نبود اما اینجا object می سازیم این مشکل هست .
    من از evnet استفاده کردم اما تا فرم بسته نشه اعمال نمیشه
    از متغیر Static استفاده کردم اما جواب نداد
    حالا چه کار میشه کرد ؟
    اگه ممکنه پروژتون رو بزارید ببینبمش

  9. #9
    کاربر دائمی آواتار benighted.boy
    تاریخ عضویت
    مهر 1385
    محل زندگی
    مشهد
    سن
    35
    پست
    109
    این شبه نمونه از سورسم هست .میخوام تصویر همزمان با قرار گرفتن در کادر عک در زمینه فرم مادر هم قرار بگیرد .
    فایل های ضمیمه فایل های ضمیمه

  10. #10
    همانطور که قبلا گفتم ، فرم اولی را بصورت پارامتر به فرم دوم ارسال کنید.
    برنامتون رو اصلاح کردم ، براتون میفرستم.
    فایل های ضمیمه فایل های ضمیمه

  11. #11
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط hassan razavi مشاهده تاپیک
    همانطور که قبلا گفتم ، فرم اولی را بصورت پارامتر به فرم دوم ارسال کنید.
    برنامتون رو اصلاح کردم ، براتون میفرستم.
    از لحاظ اصول برنامه نویسی این روش درست نیست: فرم ۲ هیچ‌ احیتاجی به دانستن در مورد فرم ۱ ندارد،در برنامه نویسی شئی‌گرا هر ابجکتی مسولیت خودش را دارد و نباید به ابجکتهایه دیگر دست بندازه و عوضشان کند، باید بهشان درخواست بفرسته که خود همان ابجکت این کار را براش انجام بدند (پروپرتیها برایه همین کار هستند). لطفاً از استفاده از این روش پرهیز کنید.


    ۲ روش درست وجود داره :
    ۱ـ همان روشی که آرا بهش اشاره کردند، و آٓن داشن یک ایونت برایه ستینگ‌هایه اپلیکیشن که وقتی عوض شدند فرم ۱ به وسیله این ایونت متوجه میشه و ایمجش را عوض میکند.
    این روش برایه تمام ستینگها قابل استفاده است و کد عوض شدن ستینگها فقط در یک کلاس جمع شدند.
    با داشتن یک کلاس که تمام ستینگهایه اپلیکشن در آنجا هستند و زمانیکه عوض میشند تمام ابجکتهایی که به ایونت عوض شدن سابسکریب کردند نُتیفی میشند و عملیات لازم را بر رویه خودشان انجام میدند.

    این روش را برایه ساختن برنامه‌هایه جدی توصیه میکنم.

    ۲-اگر فقط میخواهید که فرم ۱ بعد از نشان دادن دایالوگ باکس بداند که ایمیج عوض شده، ۲ روش وجود داره
    ۱) فرم ۲ یک ایونت تعریف میکند و فرم یک به این ایونت سابسکریب میکند به این طریق بالاترین مقدار Decoupling و Cohesion را خواهید داشت (کسی فارسی این کلمات را میداند بگه)
    ۲) فرم ۲ یک پروپرتی از نوع ایمج تعریف میکند، بعد از اینکه فرم ۱ از فرم ۲ تغاضا کرد که خودش را به صورت دایالوگ نشان بده، فرم ۱ نتیجه دایالوگ را چک میکنه که اگر اوکی بود از ایمج پروپرتی فرم ۲ ، ایمج خودش را خودش ست میکند. این روش ، روش درست پاس دادن مقادیر از یک فرم به یک فرم دیگر است، اگرچه باید طرز تفکر را عوض کرد، در برنامه نویسی شئیگرا طرز درست نگاه کردن به این مسئله این است که فرم ۲ فقط یک وضیفه دارد، و آن هم انتخواب کردن یک ایمج و یا هر مقدار دیگری. فرم ۱ از فرم ۲ درخواست مقادیری را که در پروپرتیهاش ست کرده را بعد از اینکه نتیجه دایلاوگ اوکی بود میکند و اونها را خودش ست میکند.

    این فرم ۲ نیست که مقادیر را به فرم ۱ پاس میده، این فرم ۱ است که مقادیر را از فرم ۲ درخواست میکند.

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

    در ضمن مثالی که شما فرستادید یک اشکال داره ، اجازه کنسل کردن را به کاربر نمیده. فرم ۲ باید به صورت یک دایالوگ با اوکی و کنسل باشد و فرم ۱ بعد از اوکی از پروپرتی ایمج فرم ۲، ایمج خودش را ست کند، اگر هم که کاربر کنسل کرد هیچ‌کاری نکند.

  12. #12
    کاربر دائمی آواتار benighted.boy
    تاریخ عضویت
    مهر 1385
    محل زندگی
    مشهد
    سن
    35
    پست
    109
    آرژنگ جان خیلی ممنون از توضیحاتت .اگه لطف کنی یه Sample هم بزاری ممنون میشم.توضیحاتت کامله اما پیاده سازیش یه مقداری (لااقل واسه من که چند ماه بیشتر نیست C#‎ رو شروع کردم) مشکل .
    با تشکر .

  13. #13
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط benighted.boy مشاهده تاپیک
    آرژنگ جان خیلی ممنون از توضیحاتت .اگه لطف کنی یه Sample هم بزاری ممنون میشم.توضیحاتت کامله اما پیاده سازیش یه مقداری (لااقل واسه من که چند ماه بیشتر نیست C#‎ رو شروع کردم) مشکل .
    با تشکر .
    https://barnamenevis.org/showth...34&#post412617
    https://barnamenevis.org/showth...257#post376926

تاپیک های مشابه

  1. تغییر ارتفاع lineبا تغییر ارتفاع Textbox در گزارش
    نوشته شده توسط payam59 در بخش Access
    پاسخ: 22
    آخرین پست: یک شنبه 03 شهریور 1387, 15:41 عصر
  2. تغییر اندازه ارتفاع QRShape با تغییر ارتفاع DetailBand
    نوشته شده توسط mojtaba_z در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 07 تیر 1386, 07:49 صبح
  3. lمشکل تغییر اندازه سلول دیتا گرید در زمان runtim
    نوشته شده توسط lomir در بخش VB.NET
    پاسخ: 13
    آخرین پست: یک شنبه 31 اردیبهشت 1385, 20:51 عصر
  4. مدیریت کنترلهای که در runtim ایجاد میشوند
    نوشته شده توسط mosiera98 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 22 فروردین 1385, 20:39 عصر
  5. طراحی گزارش در حالت runtim
    نوشته شده توسط linux در بخش گزارش سازی با Crystal Report
    پاسخ: 4
    آخرین پست: دوشنبه 22 اسفند 1384, 14:53 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •