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

نام تاپیک: مشکل با رسم اشکال روی فرم

  1. #1

    Question مشکل با رسم اشکال روی فرم

    سلام دوستان؛
    کد زیر مربوط میشه به رسم یه چند ضلعی روی فرم ...

    سوال :

    می دونید که این چند ضلعی ها از ترکیب چندین Point که دارای X , Y هستش ، تشکیل و رسم می شن.
    حالا من این Point ها رو ( یعنی X , Y هاش رو ) از یه فایل می خونم و در آرایه ای ذخیره می کنم...
    حال، واسه رسم این Point ها فقط از رویداد Paint از فرم این امکان میسر هستش یا راهکار دیگه ای هم هست؟
    اگر راه دیگه ای نیست ، این Point ها رو به رویداد Paint از فرم چطور میشه پاس داد ؟


    یعنی به عبارتی Point ها رو در یه تابعی می گیرم، حالا می خوام ازشون استفاده کنم و مثلاً یه چند ضلعی رو تو Form1_Paint رسم کنم.

    private void Form1_Paint(object sender, PaintEventArgs e)
    {

    Graphics g = e.Graphics;

    // Create pen.
    Pen blackPen = new Pen(Color.Black, 3);

    // Create points that define polygon.

    Point point1 = new Point(30, 50);
    Point point2 = new Point(100, 25);
    Point point3 = new Point(200, 5);
    Point point4 = new Point(250, 50);
    Point point5 = new Point(270, 100);
    Point point6 = new Point(250, 250);
    Point[] curvePoints = {point1, point2, point3, point4, point5, point6};

    // Draw polygon to screen.
    g.DrawPolygon(blackPen, curvePoints);

    // Fill polygon
    g.FillPolygon(Brushes.Red, curvePoints);

    }


    مرسی از راهنمایی دوستان ، شهرام

  2. #2

    نقل قول: مشکل با رسم اشکال روی فرم ...

    کسی از دوستان پاسخی نداره؟!!

  3. #3
    کاربر دائمی آواتار mahdi87_gh
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    448

    نقل قول: مشکل با رسم اشکال روی فرم ...

    هدفتون رو بیشتر توضیح بدین.
    شاید راه حل بهتری هم وجود داشته باشه. دقیقا مشکل کارتون چیه؟

  4. #4

    نقل قول: مشکل با رسم اشکال روی فرم ...

    یک متد به این صورت میتونید تعریف کنید برای رسم چندضلعی روی هر کنترلی:
            private static void createPolygon(Point[] points , Control c)
    {
    if (points.Length >= 2)
    {
    c.Refresh();

    Graphics g = c.CreateGraphics();
    // Create pen.
    Pen pen = new Pen(Color.Black, 3);
    // Draw polygon on control.
    g.DrawPolygon(pen, points);
    // Fill polygon
    g.FillPolygon(Brushes.Red, points);

    g.Dispose();
    pen.Dispose();
    }
    else
    {
    MessageBox.Show("The number of points must be more than one");
    }
    }
    هر جا خواستید باید آرایه ای از point و نام کنترل رو بهش پاس بدید. به این صورت مثلا
    createPolygon(curvePoints, panel1);

  5. #5

    نقل قول: مشکل با رسم اشکال روی فرم ...

    ضمن تشکر از پاسخ شما ؛

    متدی که شما تعریف کردید، به جای ورودی مثلا کنترل panel1 ، در نظر دارم ورودی ش کنترل فرمم باشه. یعنی چند ضلعی روی فرم رسم شه ..
    با خطای form1 is 'type' , but it used like a 'variable' مواجه میشه !

    لطفا راهکاری ارائه بدین

    مرسی از راهنماییتون

  6. #6
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل با رسم اشکال روی فرم ...

    سلام، چیزی که من متوجه شدم شما میخواید روی خود فرم شکل بکشید نه اینکه مثلا یه پنل بذارید و روی اون پنل شکل بکشید،اگه درست متوجه شده باشم شما باید بصورت زیر استفاده کنید:
    اگه میخواید زمانیکه برنامه رو اجرا می کنید شکل هم نمایش داده بشه شما باید رویداد paint فرمتون رو استفاده کنید،بصورت زیر:
     private void Form3_Paint(object sender, PaintEventArgs e)
    {
    g.DrawLine(Pens.Blue, 20, 20, 100, 100);
    }

    همچنین شما بایستی داخل formload کد زیر رو قرار بدید:
    private void Form3_Load(object sender, EventArgs e)
    {
    g = this.CreateGraphics();
    }

    متغیر گرافیکی g رو هم باید بصورت سراسری تعریف کنید.
    موفق باشی دوست من.

  7. #7

    نقل قول: مشکل با رسم اشکال روی فرم ...

    نقل قول نوشته شده توسط shahram_c1 مشاهده تاپیک
    ضمن تشکر از پاسخ شما ؛

    متدی که شما تعریف کردید، به جای ورودی مثلا کنترل panel1 ، در نظر دارم ورودی ش کنترل فرمم باشه. یعنی چند ضلعی روی فرم رسم شه ..
    با خطای form1 is 'type' , but it used like a 'variable' مواجه میشه !

    لطفا راهکاری ارائه بدین

    مرسی از راهنماییتون
    معلومه form1 نوع هست باید شئ ای که از فرم 1 ساخته شده رو بفرستید. برای فرم جاری از this استفاده کیند
    createPolygon(curvePoints, this);

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

  1. رسم جدول روی فرم
    نوشته شده توسط Collector در بخش C#‎‎
    پاسخ: 5
    آخرین پست: یک شنبه 03 مهر 1390, 14:23 عصر
  2. سوال: مشکل در رسم اشکال
    نوشته شده توسط bahar_engineer در بخش C#‎‎
    پاسخ: 8
    آخرین پست: یک شنبه 08 اسفند 1389, 14:01 عصر
  3. سوال: مشکل در نمایش صفحات روی فرم اصلی
    نوشته شده توسط ostovarit در بخش C#‎‎
    پاسخ: 3
    آخرین پست: سه شنبه 25 خرداد 1389, 09:19 صبح
  4. سوال: ذخیره نقاشی رسم شده روی فرم .؟
    نوشته شده توسط sari-1369 در بخش VB.NET
    پاسخ: 20
    آخرین پست: دوشنبه 12 اسفند 1387, 14:40 عصر
  5. رسم بیضی روی فرم
    نوشته شده توسط UpgradeVB6Code در بخش VB.NET
    پاسخ: 4
    آخرین پست: جمعه 20 مهر 1386, 22:55 عصر

برچسب های این تاپیک

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

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