PDA

View Full Version : مبتدی: کشیدن دایره



نسرین2000
یک شنبه 22 دی 1392, 09:26 صبح
کسی می تونه یه کامپوننت بهم معرفی کنه که بتونم باهاش دایره بکشم؟

boveiryghasem
یک شنبه 22 دی 1392, 13:45 عصر
سلام

اگر میخای فقط دایره بکشی روی فرم دابل کلیک کن بعد از منوی Events ها گزینه Paint رو انتخاب کن بعدش توی این Events از کد زیر استفاده کن:
e.Graphics.DrawEllipse(Pens.Red, 0, 0, 150, 150)

اگر تو فکر این هستی که اون برنامه ای که میخاستی واسه هتل که میخاستی دایره خالی باشه و بعدش که اتاق پر شد توی برنامت دایره مربوط به اون اتاق هم پر بشه از کد زیر استفاده کن البته بازم توی همون Events باید قسمت مربوط به کشیدن دایره رو بنویسی:
Public Class Form1
Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
If CheckBox1.Checked = False Then
e.Graphics.DrawEllipse(Pens.Red, 0, 0, 150, 150)
ElseIf CheckBox1.Checked = True Then
e.Graphics.FillEllipse(Brushes.Red, 0, 0, 150, 150)
End If
End Sub

Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged
Me.Refresh()
End Sub
End Class

راستی کل کدها واست گذاشتم که ببینی چی رو کجا بنویسی هر CheckBox مربوط به یک اتاق میتونه باشه با انتخاب شدن و نشدن پر یا خالی بشه دایره مربوط به اون بعد توی رویداد CheckBox1_CheckedChanged میتونی فرمت رو Refresh کنی تا دایره رو ببینی یه پروژه خالی ایجاد کن و یک عدد CheckBox روی فرم بزار بعدش کدهایی که گذاشتم رو بنویس امیدوارم به دردت بخوره.
اگر سوالی داری بپرس

نسرین2000
دوشنبه 23 دی 1392, 12:29 عصر
با این کد می شه دایره کشید ولی این که بتونم مختصاتشون رو تنظیم کنم خیلی سخته

boveiryghasem
دوشنبه 23 دی 1392, 13:02 عصر
خب توی PictrueBox دایره بکش هر جا هم خواستی میتونی PictrueBox رو بزاری:

Private Sub PictureBox1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim Pen As New Pen(Color.Black, 2)
If CheckBox1.Checked = True Then
e.Graphics.FillEllipse(Brushes.Black, 0, 0, 100, 100)
Me.Refresh()
Else
e.Graphics.DrawEllipse(Pen, 0, 0, 100, 100)
Me.Refresh()
End If
End Sub

sagggad
دوشنبه 23 دی 1392, 13:12 عصر
این هم راه خوبیه:
برای این که بتونی اندازش رو تنظیم کنی خصوصیت SizeMode رو برابر StercthImage قرار بده و بعد دیگه راحت پیکچرباکس رو تغییر سایز بده البته به نظر من بهتر از
Visual Basic Power Pack استفاده کنی که هی لازم نشه کد بنویسی

نسرین2000
سه شنبه 24 دی 1392, 08:58 صبح
دوستان تونستم با Visual Basic Power Pack دایره رسم کنم و با کد زیر هم برای بک گراندش رنگ تعیین می کنم ولی نمی دونم چرا رنگ نمی شه ، هیچ اروری هم نمی ده .
oval101.BackColor = Color.Red

با fillcolor هم به صورت زیر رنگ می کنم ولی باز هم رنگ نمی شه ؟
oval101.fillcolor = color.red

sagggad
سه شنبه 24 دی 1392, 09:30 صبح
خصویت BackStyle رو برابر Opaque قرار بده تا بتونی بوسیله ی BackColor براش رنگ تعیین کنی.