PDA

View Full Version : آموزش: ساختن فرم به شکل دلخواه



Mr.Csharp
جمعه 07 فروردین 1394, 18:21 عصر
سلام خدمت دوستان :قلب:

این آموزش رو میزارم شاید کاربردی نباشه ولی یه جاهایی بدرد میخوره :لبخند: (دونستن بهتر ندونستنه :لبخند:)

بریم سراغ ادامه آموزش ،

اول شما باید یه عکس مناسب انتخاب کنید ( برای مثال : اگر پروژه کتابخونه کار میکنید میتونید یه تصویر از کتاب بذارید یا چیزای دیگه )

وقتی یه عکس مناسب انتخاب کردین یه پروژه جدید درست کنید

- چند کار که بر روی Proprties فرم انجام میدیم :

اول خاصیت FormBorderStyle رو ، رو حالت None قرار میدیم
دوم اینکه عکس خودمون رو از قسمت BackgroundImage ایمپورت می کنیم
سوم Back Color و TransparencyKey رو یک رنگ مشابه (مثال : اگر BackColor رو زرد کردین TransparencyKey رو هم زرد کنید )


حالا برنامه رو Debug کنید (تا حالا باید فرم ما اینطوری شده باشه ) :

http://8pic.ir/images/4gk55oaxei0j1atlqpis.jpg

میبینم که فرم ما قابلیت جابجایی نداره و ما با این کد قابلیت جابجایی رو به فرم خودمون اضافه می کنیم :
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x84:
base.WndProc(ref m);
if ((int)m.Result == 0x1)
m.Result = (IntPtr)0x2;
return;
}
base.WndProc(ref m);
}
اما فرم ما حالا نه Close داره ، نه minimize و نهmaximize

سه Button به فرم اضافه می کنیم ، تصاویر متناسبی هم از قسمت BackgroundImage برای سه باتون Import میکنیم و خاصیت BackgroundImageLayout اونو Zoom میکنیم

حالا فرم ما باید اینطوری شده باشه :

http://8pic.ir/images/w6c3by02ntmawf3cfi02.jpg

و سه کد برای Close , Maximize , Minimize

برای Close :

this.Close();
//
Application.Exit();

برای Minimize :
this.WindowState = FormWindowState.Minimized;


و Maximize :

this.BackgroundImage = Image.FromFile("اسم تصویرتون");
this.Width = Image.FromFile("اسم تصویرتون").Width;
this.Height = Image.FromFile("اسم تصویرتون").Height;
this.WindowState = FormWindowState.Maximized;


یه نکته ی مهم هم بگم که باید تصویر رو کنار فایل اجرایی پروژتون کپی کنید (تو پوشه Debug کنار فایل exe پروژه )

چون اگر اینکار را نکنید موقع زدن دکمه Maximize برنامه ارور میده .

خُب برنامه رو اجرا کنید و لذت ببرید .

اگر فن بیان هم بد بود به بزرگی خودتون ببخشید :افسرده:

سورس هم ضمیمه شد ./

Apache66
یک شنبه 09 فروردین 1394, 10:56 صبح
سلام
اگر بخواهیم به دست کاربر تغییر شکل داده شود باید چکار کرد؟
یعنی اگر کاربر روی دکمه ای کلیک کرد شکل فرم همانند image بشه در غیر این صورت مثل فرم معمولی

Mr.Csharp
دوشنبه 10 فروردین 1394, 16:43 عصر
سلام
اگر بخواهیم به دست کاربر تغییر شکل داده شود باید چکار کرد؟
یعنی اگر کاربر روی دکمه ای کلیک کرد شکل فرم همانند image بشه در غیر این صورت مثل فرم معمولی

سلام دوست عزیز

شما یک OpenFileDialog به فرم خودتون اضافه کنید و یک Button و یک Picture box
حالا Picture box رو خارج از دید کاربر قرار بدین
و این رو برای Button خودتون بنویسید .
string choose ="";
openFileDialog1.InitialDirectory = "C:";
openFileDialog1.Title = "Select a Picture ";
openFileDialog1.FileName = "";
openFileDialog1.Filter = "PNG|*.png";
if(openFileDialog1.ShowDialog()!=DialogResult.Canc el)
{
choose = openFileDialog1.FileName;
pictureBox1.Image = Image.FromFile(choose);
}
this.BackgroundImage = pictureBox1.Image;

اینم نمونه سورس (http://uplod.ir/7pw5hq9rzjto/WindowsFormsApplication1.rar.htm) ./

Apache66
جمعه 14 فروردین 1394, 11:16 صبح
منظورم این بود به حالت اولیه فرم(بصورت مستطیلی و پیشفرض) بخوام برگردونم باید چکار کنم؟

Apache66
دوشنبه 17 فروردین 1394, 15:52 عصر
نبود راهنمائی؟

همـااا
دوشنبه 17 فروردین 1394, 17:16 عصر
منظورم این بود به حالت اولیه فرم(بصورت مستطیلی و پیشفرض) بخوام برگردونم باید چکار کنم؟

:متفکر:



this.TransparencyKey = Color.AliceBlue;
this.Controls.Remove(button1);
this.Controls.Remove(button2);
this.Controls.Remove(button3);
// اسم اون سه باتن کلوذ و مینیمایز و ماکزیمایز مدنظره
// this.BackgroundImage = null;

this.FormBorderStyle = FormBorderStyle.FixedSingle;

92tahora
سه شنبه 25 فروردین 1394, 10:44 صبح
سلام
میخوام یک CRM با ویژوال استادیو تحت ویندوز بنویسم و خیلی در شکل فرم هام مشکل دارم اگه میشه راهنماییم کنید