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

نام تاپیک: کنترل زمان اعمال تغییرات در RunTime

  1. #1

    کنترل زمان اعمال تغییرات در RunTime

    سلام،
    وقتی در زمان اجرا ویژگی های یه کنترل رو تغییر می دیم، فرضا BackColor اون رو عوض می کنیم، بلافاصله این تغییر اعمال میشه.
    توی یه فرمی می خوام تغییرات زیادی رو انجام بدم و بعد که همه انجام شدن، فرم رو دوباره رسم کنم و در طول این مدت هم می خوام فرم به همون صورت قبل از شروع تغییرات باشه (فرضا با تغییر علامت کرسر مشخص بشه که فرم در حال پردازشه). چه طور می تونم از تغییر بلافاصله ی ویژگی های کنترل های روی فرم جلوگیری کنم و در زمان مورد نظر این کار رو انجام بدم؟

    ممنون

  2. #2
    کاربر دائمی آواتار ghafoori
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان-نجف اباد
    پست
    1,111
    دوست عزیز پیشنهاد من این است که از یک تایمر استفاده کنید که مثلا بعد از چند ثانیه تغییرات را اعمال کند

  3. #3
    فکر کنم منظور من رو درست متوجه نشدید، من می خوام تا زمانی که تغییرات کاملا اعمال نشده، در فرم نشون داده نشه. با تایمر نمیشه از اعمال تغییرات در فرم جلوگیری کرد (یا شاید هم من منظور شما رو درست متوجه نشدم).

  4. #4
    قبل از اینکه تغییرات رو انجام بدی متد this.SuspendLayout رو صدا بزن.
    بعد از اعمال تغییرات متد this.ResumeLayout رو صدا بزن تا تغییرات اعمال شود.
    در ضمن این جور مو قع ها هیچوقت با تایمر و .... ماست مالی نکن.


    private void AddButtons()
    {
    // Suspend the form layout and add two buttons.
    this.SuspendLayout();
    Button buttonOK = new Button();
    buttonOK.Location = new Point(10, 10);
    buttonOK.Size = new Size(75, 25);
    buttonOK.Text = "OK";

    Button buttonCancel = new Button();
    buttonCancel.Location = new Point(90, 10);
    buttonCancel.Size = new Size(75, 25);
    buttonCancel.Text = "Cancel";

    this.Controls.AddRange(new Control[]{buttonOK, buttonCancel});
    this.ResumeLayout();
    }

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    البته لازم به ذکره که متد SuspendLayout فقط برای نگهداری خصوصیاتی مثل سایز ، محل کنترل و ... به کار میره.
    در واقع درصورتیکه این متد رو صدا بزنید و سپس خصوصیت BackColor فرم رو تغییر بدید بدون توجه به کال شدن SuspendLayout تغییرات بلافاصله اعمال میشه و منتظر متد ResumeLayout نمیمونه.
    به هر صورت اگه Suspend/Resume جوابگو نبود فکر میکنم بتونی با آوررید کردن متد OnPaint یه کارایی انجام بدی.

  6. #6
    متد SuspendLayout و ResumeLayout همونطور که جناب Farhad.B.S گفتن جواب نمیده،
    در مورد اورراید کردن متد OnPaint هم، راستش روش پیچیده ایه می خوام اگر بشه یه روش ساده تر پیدا کنم.

  7. #7
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    اگه به دنبال روشی هستید که مورد ساپورت فریمورک باشه فکر نمیکنم چنین چیزی موجود باشه.
    روش های فرعی و غیر استاندارد زیادی وجود داره، مثلا انداختن یک کنترل پوشش دهنده مثل Panel بر روی فضای مورد تغییر ؛ تغییر خصوصیات فرم و نهایتاً حذف کنترل پوشش دهنده.

  8. #8
    توی این فرم من می خواستم کنترلهای موجود رو Dispose کنم و یه سری کنترل جدید قرار بدم. قبلا با این که اول کنترل ها رو کامل ایجاد می کردم بعد به فرم اضافه می کردم باز هم فرم به اون صورتی که مورد نظر بود تغییر نمی کرد یعنی کنترلها تک تک نشون داده میشدن. این مرتبه قبل از اضافه کردن کنترل ها به فرم از SuspendLayout استفاده کردم و بعد هم ResumeLayout. به این ترتیب به این ترتیب کنترل های جدید همه با هم توی فرم نمایش داده می شن.

  9. #9
    کاربر دائمی آواتار dot_net_lover2
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    شیراز
    پست
    324
    به نظر من واسه خصوصیاتی مثل BackColor میتونی از یک آرایه یا لیست استفاده کنی ٬‌بدین صورت که این لیست تمام خصوصیاتی را که باز تا اونجا که متوجه شدم در فرم Setting خود تغییر دادی را در خود قرار داده(To Do List) و حالا با Apply شدن Change setting ها میتونی پشت سر هم موارد درون لست را اعمال کنی.

  10. #10
    فکر کنم صورت مسئله رو کامل نخوندی

  11. #11
    کاربر دائمی آواتار dot_net_lover2
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    شیراز
    پست
    324
    دوباره خوندم با قبلا تفاوتی نکرد میشه بگی کجا را خوب متوجه نشدم.

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

  1. دسترسی به مشخصات کامپوننت ها و تغییر اونها در زمان runtime
    نوشته شده توسط rmb_ali در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: دوشنبه 04 تیر 1386, 16:42 عصر
  2. تغییر فونت تمام کنترلهای برنامه در runtime
    نوشته شده توسط once4ever در بخش C#‎‎
    پاسخ: 5
    آخرین پست: سه شنبه 01 خرداد 1386, 19:32 عصر
  3. تغییر سایز کنترل ها در Runtime
    نوشته شده توسط Alireza_Salehi در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 14 بهمن 1385, 06:41 صبح
  4. تغییر سایز کنترل ها در Runtime
    نوشته شده توسط Alireza_Salehi در بخش VB.NET
    پاسخ: 3
    آخرین پست: شنبه 14 بهمن 1385, 06:29 صبح
  5. ذخیره تغییرات ایجاد شده کنترل ها درRuntime
    نوشته شده توسط Alireza_Salehi در بخش VB.NET
    پاسخ: 6
    آخرین پست: دوشنبه 09 بهمن 1385, 20:12 عصر

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

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