PDA

View Full Version : سوال: دایره کردن buttom



shadidayan
چهارشنبه 17 مهر 1387, 15:11 عصر
با سلام
برای طراحی فرم ، چطور می شود شکل buttom را مثلا دایره شکل کرد.
اگر icon هایی در زمینه add,edit, و ... برای طراحی فرم دارید برام بفرستید .
ممنون.

ASKaffash
چهارشنبه 17 مهر 1387, 15:57 عصر
سلام
یک UserControl ایجاد کنید و آن را از کلاس Button ارث ببرید و بعد Event مربوط به OnPaint آن را Override کنید و درون آن بااستفاده از کلاس GraphicsPath یک دایره را برای حاشیه Button تعریف کنید هدفتان برآورده میشود.

shadidayan
چهارشنبه 17 مهر 1387, 18:12 عصر
میشه بیشتر توضیح دهید useconterol رو که درست کردم. بعد کجا از butom ارث بری کنم. و ذر over right کردن چی بنویسم و..

shadidayan
چهارشنبه 17 مهر 1387, 23:14 عصر
چرا کسی جواب نمی ده

SMRAH1
چهارشنبه 17 مهر 1387, 23:21 عصر
سلام

همونطور که دوستان گفتند باید یک کنترل جدید بسازی.اما بهتره به جای User Control از Custom COntrol استفاده کنی(هر چند که استفادهه از User control کاملا منتفی نیست).کافی در منوی Project گزینه Add New Item رو بزنی و Custom Control رو انتخاب کنی و مثلا اسمش رو MyButton گذاری.بعد در Source اون کلاس پایه رو از Control به Button تغییر بده و متد OnPaint (که به صورت پیشفرض ساخته شده ) رو بازنویسی کن.یه چیزی شبیه این (برای مثال است):


namespace WindowsFormsApplication1
{
public partial class MyButton : Button
{
public MyButton()
{
InitializeComponent();

//Creating circle path
System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddEllipse(0, 0, this.Width, this.Height);
//Creating the region from the circle path
this.Region = new Region(path);
}

protected override void OnPaint(PaintEventArgs pe)
{
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;

pe.Graphics.Clear(this.BackColor);
pe.Graphics.DrawString(Text,Font,new SolidBrush(ForeColor),
new RectangleF(0, 0, this.Width, this.Height), stringFormat);
}
}
}

البته در این مثال تغییر Region در متد سازنده صورت گرفته است.(تا به شکل بیضی دیده شود).همچنین برای تکمیل برخی پیغامها (مثل KeyPress و Click و ...) رو باید برنامه نویسی کنی.در کل کاروقت گیری است.

موفق باشی

shadidayan
پنج شنبه 18 مهر 1387, 03:19 صبح
منظورتون از اینکه وقت ی گیره اینکه برای هر رویداد دیگر دکمه باید برنامه بنویسم.؟؟

SMRAH1
پنج شنبه 18 مهر 1387, 05:17 صبح
سلام

تقریبا آره!!!!

برنامه های توی این دوتا لینک رو بگیر،توی هرکدومشون یک Button سفارشی پیاده سازی شده است.کمی راهنمایی ات می کند.
http://blog.opennetcf.org/ayakhnin/content/binary/OfficeStyleWindow.zip
SoftwareStudio.GUI (http://sourceforge.net/project/downloading.php?groupname=softwarestudio&filename=SoftwareStudio.GUI.zip&use_mirror=superb-east)

موفق باشی

Itist82
پنج شنبه 18 مهر 1387, 17:41 عصر
توی این تاپیک تالار VB.Net چیزهای جالبی دانلود کردم حتما سر بزنید. دکمه های قشنگی گذاشته بودن.
http://barnamenevis.org/forum/showthread.php?t=116590