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

نام تاپیک: فراخوانی رویداد Paint در رویداد کلیک روی Button

  1. #1

    Smile فراخوانی رویداد Paint در رویداد کلیک روی Button

    سلام

    ببخشید می خواستم بدونم ممکنه که من بتونم تو سی شارپ کد موجود در بخش رویداد Paint کنترل PictureBox را با هر بار کلیک روی Button (منظورم رویداد کلیک روی Button هست) را فراخوانی و اجرا کنم ؟ [ یعنی در کل می خوام با هر بار کلیک کد درون رویداد Paint کنترل PictureBox را فراخوانی کنم].

    ممنون میشم کمک کنید و کد مربوطه رو برایم بگذارید.
    ممنون.

  2. #2

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    میشه واضح تر توضیح بدین که چکار می خوایین انجام بدین؟


    استخدام برنامه نویس دات نت (Asp.net,C#‎‎‎‎,jquery,...)
    ترجیحا خراسان شمالی ، بجنورد
    به صورت پاره وقت و تمام وقت

    ارسال اطلاعات و رزومه کاری به Job@tosa.ir

  3. #3
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    نقل قول نوشته شده توسط puvinax مشاهده تاپیک
    سلام

    ببخشید می خواستم بدونم ممکنه که من بتونم تو سی شارپ کد موجود در بخش رویداد Paint کنترل PictureBox را با هر بار کلیک روی Button (منظورم رویداد کلیک روی Button هست) را فراخوانی و اجرا کنم ؟ [ یعنی در کل می خوام با هر بار کلیک کد درون رویداد Paint کنترل PictureBox را فراخوانی کنم].

    ممنون میشم کمک کنید و کد مربوطه رو برایم بگذارید.
    ممنون.
    سلام دوست عزیز:

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
    e.Graphics.FillRectangle(Brushes.Blue, e.ClipRectangle);
    }

    private void button1_Click(object sender, EventArgs e)
    {
    pictureBox1_Paint(pictureBox1, new PaintEventArgs(pictureBox1.CreateGraphics(), pictureBox1.ClientRectangle));
    }

    ولی هرچی فکر کردم دیدم چه کاره بیخودیه!!!
    لطفا ایده تو از انجام این کار هم قرار بده برای من جالبه
    موفق باشید

  4. #4

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    نقل قول نوشته شده توسط puvinax مشاهده تاپیک
    سلام

    ببخشید می خواستم بدونم ممکنه که من بتونم تو سی شارپ کد موجود در بخش رویداد Paint کنترل PictureBox را با هر بار کلیک روی Button (منظورم رویداد کلیک روی Button هست) را فراخوانی و اجرا کنم ؟ [ یعنی در کل می خوام با هر بار کلیک کد درون رویداد Paint کنترل PictureBox را فراخوانی کنم].

    ممنون میشم کمک کنید و کد مربوطه رو برایم بگذارید.
    ممنون.
    سلام.
    کافیه روی PictureBox خودتون، Refresh رو فراخوانی کنید تا دوباره Paint فراخوانی بشه. PictureBox از Control مشتق میشه، و روی کنترل متود Refresh قرار داره، که باعث Invalidate شدن کنترل مورد نظر میشه.

    موفق باشید.

  5. #5

    Smile نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    نقل قول نوشته شده توسط mehdi.mousavi مشاهده تاپیک
    سلام.
    کافیه روی PictureBox خودتون، Refresh رو فراخوانی کنید تا دوباره Paint فراخوانی بشه. PictureBox از Control مشتق میشه، و روی کنترل متود Refresh قرار داره، که باعث Invalidate شدن کنترل مورد نظر میشه.

    موفق باشید.
    اجازه بدید بیشتر توضیح بدم چون هنوز یک مشکل هست ببینید من دو تا گره با براش ها توی picturebox ترسیم کردم حالا می خوام فلشی از گره اول به دوم بکشم.
    چون در هنگام رسم فلش از کد Graphics g2 = e.Graphics بهره می برم که باید تو رویداد paint باشه چرا که به آرگومان PaintEventArgs e نیاز هستش. پس من مجبورم برای رسم فلش با کلیک بر روی دکمه ای این دستور رو بدم اما باید رویداد Paint رو فراخونی کنم.
    دوست عزیز آقای mehdi.mousavi
    ممنون از کمکت اما با Refresh کردن هر آنچه که دارم پاک میشه و سپس Arrow رسم میشه من نمی خوام چیری پاک بشه.

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

  6. #6

    Smile نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    نقل قول نوشته شده توسط alireza_s_84 مشاهده تاپیک
    سلام دوست عزیز:

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
    e.Graphics.FillRectangle(Brushes.Blue, e.ClipRectangle);
    }

    private void button1_Click(object sender, EventArgs e)
    {
    pictureBox1_Paint(pictureBox1, new PaintEventArgs(pictureBox1.CreateGraphics(), pictureBox1.ClientRectangle));
    }
    ولی هرچی فکر کردم دیدم چه کاره بیخودیه!!!
    لطفا ایده تو از انجام این کار هم قرار بده برای من جالبه
    موفق باشید
    سلام

    ممنون از کمکت من دقیقا همین منظورم بود اما مثل راه حل دوست دیگرمون در پست بالا این مورد هم باعث پاک شدن picturebox میشه که من نمیدونم راه حلش چیه. من نمیخوام هیچ چیزی از محتویات picturebox پاک بشه در عین حال ترسیم Arrow هم صورت بگیره.
    فرمودید توضیح بدم که در پست بالا اندکی گفتم امیدوارم جامع و کافی باشه.

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

  7. #7
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    سلام
    همانطور که در پست 4 گفته شده Refresh روی PictureBox همان رویداد Paint را فراخوانی میکند و وقتی شما از کلاس Graphics استفاده میکنید نمی توانید نصف ترسیم را یکبار و نصف دیگر را یکبار دیگر انجام دهید اگر مقادیر قبلی ترسیمات برای شما مهم است یک آرایه ای از اشیای ترسیم شده را نگهداری ودر ترسیمات بعدی استفاده نمائید

  8. #8

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    Point p1 = new Point(10, 10);
    Point p2 = new Point(10, 10);
    private void button1_Click(object sender, EventArgs e)
    {
    Graphics g = pictureBox1.CreateGraphics();
    Pen p = new Pen(Color.Black);
    p2.X += 5;
    g.DrawLine(p, p1, p2);
    }

  9. #9

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    همونطور که دوستمون exlord در کدی که گذاشتند اشاره کردند.
    لازم نیست حتما به رویداد paint برسی تا به Graphics دسترسی داشته باشی. کافیه از متد picturebox1.CreateGraphics استفاده کنی. به همون شی که دنبالشی دسترسی داری.
    موفق باشی.

  10. #10
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    سلام
    با توجه به کار کرد شما،توصیه می کنم که به جای رسم مستقیم در یک کنترل (حتی اگر PicturBox باشد)،یک Bitmap آیجاد کرده و در آن رسم کنید و سپس Bitmap را به PicturBox تخصیص دهید (این روش اصولی تر است)!
    Point p1 = new Point(10, 10);
    Point p2 = new Point(10, 10);
    private void button1_Click(object sender, EventArgs e)
    {
    using(Graphics g = Graphics.FromImage(bmp))
    {
    Pen p = new Pen(Color.Black);
    p2.X += 5;
    g.DrawLine(p, p1, p2);
    }
    pictureBox1.Image = bmp;
    }

    موفق باشید

  11. #11
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: فراخوانی رویداد Paint در رویداد کلیک روی Button

    نقل قول نوشته شده توسط exlord مشاهده تاپیک
    Point p1 = new Point(10, 10);
    Point p2 = new Point(10, 10);
    private void button1_Click(object sender, EventArgs e)
    {
    Graphics g = pictureBox1.CreateGraphics();
    Pen p = new Pen(Color.Black);
    p2.X += 5;
    g.DrawLine(p, p1, p2);
    }
    سلام
    این روش اشکال فنی دارد وقتی یک فرم روی این PictureBox بازشود کلیه ترسیمات از بین میرود و حتما باید از Paint استفاده گردد خودتان چیزی را که گفتم تست کنید خواهید دید

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

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