PDA

View Full Version : کشیدن کمان



saed2006
شنبه 07 فروردین 1389, 09:42 صبح
من میخوام یک کمان روی فرم بکشم
اما نه در زمان اجرا بلکه در محیط طراحی
ایا کنترلی هست که بشه این کار رو کرد؟

saed2006
شنبه 07 فروردین 1389, 10:09 صبح
یه یوزر کنترل ساختم و این کد رو واسش نوشتم


public partial class UserControl1 : PictureBox
{
private System.Drawing.Graphics g;
private System.Drawing.Pen pen1 = new System.Drawing.Pen(Color.Blue, 2F);
public UserControl1()
{
InitializeComponent();
g = pictureBox1.CreateGraphics();
g.DrawArc(pen1, this.Location.X - this.Width, this.Location.Y - this.Height, this.Width,
this.Height, 20, 100);
}


اما مشکل اینه که هیچی داخلش نمایش داده نمیشه

SMRAH1
شنبه 07 فروردین 1389, 10:52 صبح
سلام
شما باید در متد OnPaint این ترسیم رو انجام بدید یعنی

protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
//Draw your arc
base.OnPaint(e);
}
در ضمن معمولا نیاز به باز نویسی OnSizeChanged و OnPaintBackground هم می شود.

موفق باشید

حامد مصافی
شنبه 07 فروردین 1389, 10:52 صبح
كد مورد نظر را در رويداد Paint بنويسيد.
به جاي CreateGraphics از e.Graphics استفاده كنيد.

saed2006
شنبه 07 فروردین 1389, 11:01 صبح
ممنون
من میخوام یک ارک محدب و یه ارک مقعر داشته باشم
ولی با نوشتن کد بالا ارک تغیر میکنه ولی به اون چیزی که من میخوام نمیرسه
میشه راهنمایی کنید که چجوری به این هدف برسم

حامد مصافی
شنبه 07 فروردین 1389, 11:36 صبح
تحدب يا تقعر يك مسئله نسبي است؛ با توجه به اينكه از خارج از دايره دربرگيرنده كمان يا داخل آن به آن نگاه كنيد، كمان كوژ يا كاو خواهد بود.
نكات فني در پست سوم خدمت شما بيان شد، باقي قضايا رياضيات است،