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

نام تاپیک: حرکت دادن یک کنترل با روشی غیر از تایمر

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    خوی
    پست
    454

    حرکت دادن یک کنترل با روشی غیر از تایمر

    با سلام
    آیا راه دیگه ای به جز تایمر هست که بشه با اون یک کنترل رو در فرم بصورت متحرک در آورد.یعنی آروم آروم از یک جا به جای دیگه بره؟
    ممنون

  2. #2
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: حرکت دادن یک کنترل با روشی غیر از تایمر

    سلام
    میتوانید از یک حلقه استفاده کنید و در هر بار اجرا ادامه برنامه را برای مدت کوتاهی متوقف کنید که بهتر است از چند thread استفاده کنید تا کار برنامه مختل نشود. به این کد دقت کنید:

    void MoveButton1()
    {
    for (int i = 0; i < System.Windows.Forms.Screen.PrimaryScreen.Bounds.W idth; i++)
    {
    button1.Left = i;
    System.Threading.Thread.Sleep(10);
    }
    }

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    خوی
    پست
    454

    نقل قول: حرکت دادن یک کنترل با روشی غیر از تایمر

    به نظر شما بهترین راه واسه اینکار چیه؟تایمر طوری که می خوام عمل نمی کنه.وقتی inteval رو پایین ترین مقدار می دم باز هم سرعتش پایین تر از اون چیزیه که من می خوام.وقتی هم در اون interval از مکان باتون را چند تا چند تا عوض می کنم به صورت تکه تکه تغییر مکان میده و دیگه حالت روان حرکت کردن نداره.

  4. #4

    نقل قول: حرکت دادن یک کنترل با روشی غیر از تایمر

    نقل قول نوشته شده توسط mehran788 مشاهده تاپیک
    به نظر شما بهترین راه واسه اینکار چیه؟تایمر طوری که می خوام عمل نمی کنه.وقتی inteval رو پایین ترین مقدار می دم باز هم سرعتش پایین تر از اون چیزیه که من می خوام.وقتی هم در اون interval از مکان باتون را چند تا چند تا عوض می کنم به صورت تکه تکه تغییر مکان میده و دیگه حالت روان حرکت کردن نداره.
    بهترین شیوه رو M.safa نوشتند، اما اگر کار دیگری در حین این انتقال باید انجام بشه که با این روند تداخل داره، از BackgroundWorker کمک بگیرید.

    MoveButton.zip

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    خوی
    پست
    454

    نقل قول: حرکت دادن یک کنترل با روشی غیر از تایمر

    سلام.
    من کد زیر رو تو backgroundworker نوشتم و خطا داد.میشه راهنمایی کنید که مشکل از کجاست

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
    while (backgroundWorker1.CancellationPending == false)
    {
    backgroundWorker1.ReportProgress(0);
    System.Threading.Thread.Sleep(speed);
    }
    }


    private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
    if (lbc.Text == "0")
    {
    if (panel1.Location.X > 4)
    {
    Point p = new Point();
    p.X = panel1.Location.X - 5;
    p.Y = panel1.Location.Y;
    panel1.Location = p;
    p.X = txtname.Location.X - 5;
    p.Y = txtname.Location.Y;
    txtname.Location = p;
    p.X = lbname.Location.X - 5;
    p.Y = lbname.Location.Y;
    lbname.Location = p;
    }
    else
    timer1.Enabled = false;
    }
    if (lbc.Text == "1")
    {
    if (panel2.Location.X > 4)
    {
    Point p = new Point();
    p.X = panel2.Location.X - 2;
    p.Y = panel2.Location.Y;
    panel2.Location = p;
    p.X = lbsq1.Location.X - 2;
    p.Y = lbsq1.Location.Y;
    lbsq1.Location = p;
    p.X = txtsq1.Location.X - 2;
    p.Y = txtsq1.Location.Y;
    txtsq1.Location = p;
    }
    else
    timer1.Enabled = false;
    }
    }

    و خطای زیر رو داد
    This BackgroundWorker states that it doesn't report progress. Modify WorkerReportsProgress to state that it does report progress.

  6. #6

    نقل قول: حرکت دادن یک کنترل با روشی غیر از تایمر

    نقل قول نوشته شده توسط mehran788 مشاهده تاپیک
    سلام.
    من کد زیر رو تو backgroundworker نوشتم و خطا داد.میشه راهنمایی کنید که مشکل از کجاست
    This BackgroundWorker states that it doesn't report progress. Modify WorkerReportsProgress to state that it does report progress.
    توی فرم تون اون کنترل backgroundWorker1 رو انتخاب کرده و در پنجره Properties مشخصه هایش را ببینید، یک مشخصه WorkerReportsProgress
    داره که الان مقدارش False ئه، تا وقتی False باشه رخداد ProgressChanged قابل استفاده نیست، مقدارش رو به True تغییر دهید.

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    خوی
    پست
    454

    نقل قول: حرکت دادن یک کنترل با روشی غیر از تایمر

    واقعا ازتون ممنون

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

  1. سوال: حرکت دادن کنترل ها توی محیط design
    نوشته شده توسط hashemi85sep در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: یک شنبه 12 اردیبهشت 1389, 16:36 عصر
  2. ساخت یک گروه کنترل و حرکت دادن آن
    نوشته شده توسط bahar_engineer در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 27 آذر 1388, 13:04 عصر
  3. سوال: حرکت دادن کنترل در زمان اجرا
    نوشته شده توسط reza_comp در بخش C#‎‎
    پاسخ: 2
    آخرین پست: پنج شنبه 05 شهریور 1388, 17:26 عصر
  4. حرکت دادن کنترل
    نوشته شده توسط zohre_heidary در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: یک شنبه 20 مرداد 1387, 12:06 عصر
  5. سوال: روشی غیر از کنترل اینترنت برای نمایش فایلهای HTML تو برنامه ؟
    نوشته شده توسط Babak.Hassanpour در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: یک شنبه 02 تیر 1387, 15:44 عصر

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

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