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

نام تاپیک: رسم یک دایره در pictureBox

  1. #1

    رسم یک دایره در pictureBox

    سلام
    می خوام یک دایره با ماوس روی pictureBox بکشیم که یک لایه روی آن ایجاد کند یعنی با کلیک دوباره روی آن وحرکت ماوس بتوانیم آن را جابجا کنیم .

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    123

    نقل قول: رسم یک دایره در pictureBox


    public partial class Form1 : Form
    {
    bool hasDrawn = false;
    Graphics graphics;
    int radius = 0;
    Point center = new Point(0, 0);
    Point mouseDownLocation = new Point(0, 0);

    public Form1()
    {
    InitializeComponent();

    pictureBox1.MouseDown += (sender, e) =>
    {
    if (!hasDrawn)
    center = new Point(e.X, e.Y);
    else
    mouseDownLocation = new Point(e.X, e.Y);
    };

    pictureBox1.MouseMove += (sender, e) =>
    {
    if (e.Button == MouseButtons.Left)
    {
    if (!hasDrawn)
    {
    graphics = pictureBox1.CreateGraphics();
    radius = e.X - center.X;

    DrawEllipse(center, radius);
    }
    else
    DrawEllipse(new Point(center.X + (e.X - mouseDownLocation.X), center.Y + (e.Y - mouseDownLocation.Y)), radius);
    }
    };

    pictureBox1.MouseUp += (sender, e) =>
    {
    if (!hasDrawn)
    hasDrawn = true;
    else
    center = new Point(center.X + (e.X - mouseDownLocation.X), center.Y + (e.Y - mouseDownLocation.Y));
    };
    }

    private void DrawEllipse(Point center, int radius)
    {
    graphics.Clear(pictureBox1.BackColor);
    graphics.DrawEllipse(Pens.Black, center.X, center.Y, radius, radius);
    }
    }

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    در برنامه نویس دات ارگ
    پست
    39

    نقل قول: رسم یک دایره در pictureBox


  4. #4

    نقل قول: رسم یک دایره در pictureBox

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

    public partial class Form1 : Form
    {
    bool hasDrawn = false;
    Graphics graphics;
    int radius = 0;
    Point center = new Point(0, 0);
    Point mouseDownLocation = new Point(0, 0);

    public Form1()
    {
    InitializeComponent();

    pictureBox1.MouseDown += (sender, e) =>
    {
    if (!hasDrawn)
    center = new Point(e.X, e.Y);
    else
    mouseDownLocation = new Point(e.X, e.Y);
    };

    pictureBox1.MouseMove += (sender, e) =>
    {
    if (e.Button == MouseButtons.Left)
    {
    if (!hasDrawn)
    {
    graphics = pictureBox1.CreateGraphics();
    radius = e.X - center.X;

    DrawEllipse(center, radius);
    }
    else
    DrawEllipse(new Point(center.X + (e.X - mouseDownLocation.X), center.Y + (e.Y - mouseDownLocation.Y)), radius);
    }
    };

    pictureBox1.MouseUp += (sender, e) =>
    {
    if (!hasDrawn)
    hasDrawn = true;
    else
    center = new Point(center.X + (e.X - mouseDownLocation.X), center.Y + (e.Y - mouseDownLocation.Y));
    };
    }

    private void DrawEllipse(Point center, int radius)
    {
    graphics.Clear(pictureBox1.BackColor);
    graphics.DrawEllipse(Pens.Black, center.X, center.Y, radius, radius);
    }
    }


    عالی بود. متشکرم

    حالا اگه بخواهیم یه مربع به این pictureBox اظافه کنیم که بعد از کشیدنش با کلیک روی هرکدام از اشکال (مربع یا دایره) بتوانیم آنها را جابجا کنیم.... چه باید کرد ؟

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

    نقل قول: رسم یک دایره در pictureBox

    خيلي راحت نيست! در اين صورت بايد دايره يا مربع يا اشياء ديگر را به صورت user control به كنترل هاي picturebox اضافه كرد، يعني هر شيئ در يك user control و با ايجاد event هاي مناسب براي هر user control امكان drag كردن آن را بوجود آورد

  6. #6

    نقل قول: رسم یک دایره در pictureBox

    نقل قول نوشته شده توسط prankster مشاهده تاپیک
    خيلي راحت نيست! در اين صورت بايد دايره يا مربع يا اشياء ديگر را به صورت user control به كنترل هاي picturebox اضافه كرد، يعني هر شيئ در يك user control و با ايجاد event هاي مناسب براي هر user control امكان drag كردن آن را بوجود آورد

    یعنی باید چی کار کنم و چطور از user control استفاده کنم ؟

    اگه می شه کد بگذارید
    متشکرم

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

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