PDA

View Full Version : رسم دایره و مستطیل روی فرم



ghamgin
شنبه 09 اردیبهشت 1391, 10:14 صبح
سلام
کسی میدونه چطور میشه وقتی کاربر در زمان اجرا روی یک کلید کلیک کرد
بتونه روی فرم دایره و یا مستطیل بکشه؟
و
یا شکل رو بکشه و بتونه تغییر اندازش بده؟
ممنون میشم راهنمایی کنید

Hossenbor
شنبه 09 اردیبهشت 1391, 10:34 صبح
بفرمایین دوست عزیز
private void button1_Click(object sender, EventArgs e)
{
using (Graphics g = this.CreateGraphics())
{
//برای رسم دایره
g.DrawEllipse(Pens.Red, 10, 10, 100, 100);

//برای رسم مستطیل
g.DrawRectangle(Pens.Red, 10, 10, 100, 100);
}
}

ghamgin
شنبه 09 اردیبهشت 1391, 17:15 عصر
بفرمایین دوست عزیز
private void button1_Click(object sender, EventArgs e)
{
using (Graphics g = this.CreateGraphics())
{
//برای رسم دایره
g.DrawEllipse(Pens.Red, 10, 10, 100, 100);

//برای رسم مستطیل
g.DrawRectangle(Pens.Red, 10, 10, 100, 100);
}
}

سلام
ممنون
اره
میدونم
میخوام وقتی کاربر دایره رو کشید بتونه تغییر اندازش بده
و یا با درگ روی فرم جا به جاش کنه؟؟:ناراحت:

Hossenbor
شنبه 09 اردیبهشت 1391, 17:39 عصر
خوب باید کد
g.Clear(this.BackColor);
بعلاوه کد بالا در رویداد موس موو فرم قرار بدین

ghamgin
شنبه 09 اردیبهشت 1391, 18:04 عصر
خوب باید کد
g.Clear(this.BackColor);
بعلاوه کد بالا در رویداد موس موو فرم قرار بدین
سلام دوست من
ممنونم ازتون
میشه لطف کنید روی نمونه تون بگید؟؟
ممنون

محمد فدوی
شنبه 09 اردیبهشت 1391, 20:14 عصر
اگر از VS2010 استفاده می کنی این دو تا Refrence رو به بخش Refrences اضافه کن و بعد، از اشکال داخل اون استفاده کن.
[LTR_INLINE]
Microsoft.VisualBasic
Microsoft.VisualBasic.PowerPacks
[LTR_INLINE/]

اینم یه نمونه. (برای اینکه بتونی ببینیش، اسم پروژه و اسم فرمت رو مثل سورسی که گذاشتم بکن، بعدش این سورس رو داخل کد فرمت کپی کن...)

using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.VisualBasic.PowerPacks;
namespace ShapeApp
{
public partial class ShapeForm : Form
{
private OvalShape oval;
private ShapeContainer cont;
private int down_x, down_y;
public ShapeForm()
{
InitializeComponent();
Cursor = Cursors.SizeAll;
cont = new Microsoft.VisualBasic.PowerPacks.ShapeContainer()
{ Dock = DockStyle.Fill };
oval = new Microsoft.VisualBasic.PowerPacks.OvalShape(cont)
{ Location = new Point(10, 10), Size = new Size(100, 100),
FillStyle = FillStyle.SolidDiamond, FillColor = Color.LightBlue };
Controls.Add(cont);
oval.MouseDown += new MouseEventHandler(oval_MouseDown);
oval.MouseMove += new MouseEventHandler(oval_MouseMove);
}
void oval_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
oval.Left += e.X - down_x;
oval.Top += e.Y - down_y;
}
}
void oval_MouseDown(object sender, MouseEventArgs e)
{
down_x = e.X;
down_y = e.Y;
}
}
}

ghamgin
یک شنبه 10 اردیبهشت 1391, 12:33 عصر
اگر از VS2010 استفاده می کنی این دو تا Refrence رو به بخش Refrences اضافه کن و بعد، از اشکال داخل اون استفاده کن.
[LTR_INLINE]
Microsoft.VisualBasic
Microsoft.VisualBasic.PowerPacks
[LTR_INLINE/]

اینم یه نمونه. (برای اینکه بتونی ببینیش، اسم پروژه و اسم فرمت رو مثل سورسی که گذاشتم بکن، بعدش این سورس رو داخل کد فرمت کپی کن...)

using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.VisualBasic.PowerPacks;
namespace ShapeApp
{
public partial class ShapeForm : Form
{
private OvalShape oval;
private ShapeContainer cont;
private int down_x, down_y;
public ShapeForm()
{
InitializeComponent();
Cursor = Cursors.SizeAll;
cont = new Microsoft.VisualBasic.PowerPacks.ShapeContainer()
{ Dock = DockStyle.Fill };
oval = new Microsoft.VisualBasic.PowerPacks.OvalShape(cont)
{ Location = new Point(10, 10), Size = new Size(100, 100),
FillStyle = FillStyle.SolidDiamond, FillColor = Color.LightBlue };
Controls.Add(cont);
oval.MouseDown += new MouseEventHandler(oval_MouseDown);
oval.MouseMove += new MouseEventHandler(oval_MouseMove);
}
void oval_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
oval.Left += e.X - down_x;
oval.Top += e.Y - down_y;
}
}
void oval_MouseDown(object sender, MouseEventArgs e)
{
down_x = e.X;
down_y = e.Y;
}
}
}


سلام ممنون
اما نشد
این رفرنس ها توی 2010 وجود نداشت خواهش میکنم کمک کنید یا یک نمونه بذارید
ممنون

Hossenbor
یک شنبه 10 اردیبهشت 1391, 14:47 عصر
دوست عزیز اگه میخواهین قابل حرکت باشه باید شی بسازین مثل باتن و ... اینم یک نمونه کد
http://www.codeproject.com/Articles/42956/Moveable-Resizable-Objects

ghamgin
یک شنبه 10 اردیبهشت 1391, 16:53 عصر
دوست عزیز اگه میخواهین قابل حرکت باشه باید شی بسازین مثل باتن و ... اینم یک نمونه کد
http://www.codeproject.com/Articles/42956/Moveable-Resizable-Objects

سلام
ممنون دوست من
اما این خیلی پیچیده و سخته
نمونه راحت تر ندارید؟؟؟:گریه:
ممنون

Hossenbor
یک شنبه 10 اردیبهشت 1391, 18:23 عصر
راحت تر که نمیدونم ولی شاید بشه با یوزر کنترل به عنوان شی پایه شروع کرد امروز پروژه دارم اگه فردا تموم شدم روش کار می کنم خبرت می کنم

mahdichayi
پنج شنبه 11 آبان 1396, 19:59 عصر
واسه اینکه دایره ای که میکشیم توپر باشه باید چه کدی بنویسیم؟

Mahmoud Zaad
پنج شنبه 11 آبان 1396, 20:19 عصر
واسه اینکه دایره ای که میکشیم توپر باشه باید چه کدی بنویسیم؟

سلام
متدهایی که با Fill شروع میشن مثل FillEllipse و FillRectangle اون شی رو تو پر رسم می کنن. برای دایره FillEllipse