با سلام
من یه فرم دارم می خوام این فرم روی هر سیستمی باشه به صورت فول اسکرین در بیاد.
یعنی اگه رزولوشن سیستم من 768 * 1024 و برنامه من رفت روی سیستم دیگه که رزولوشن اون 600 * 800
هستش همچنان فرم من فول اسکرین باشه .
با تشکر از همه اساتید ....
با سلام
من یه فرم دارم می خوام این فرم روی هر سیستمی باشه به صورت فول اسکرین در بیاد.
یعنی اگه رزولوشن سیستم من 768 * 1024 و برنامه من رفت روی سیستم دیگه که رزولوشن اون 600 * 800
هستش همچنان فرم من فول اسکرین باشه .
با تشکر از همه اساتید ....
این همه اساتید به نام توی این تالار
یعنی یکی نیست یه گوشه چشمی هم به ما بندازه
بابا دمتون گرم..
من هنوز منتظرم ....
بابا اصلا بگین این کار شدنیه یا نه
گرچه من فکر می کنم شدنی باشد.
یه چیزی تو مایه های بازی های کامپیوتری که هر رزولوشنی باشی فول اسکرین می شه.
وبلاگ من www.newcsharp.blogfa.com
با سلام
ببین شدنی هست ولی توی حالت معمولی C#.Net یعنی WindowsForm Application خیلی سخت هست و آخرش هم 90% درست میشه و 100% نیست.
برای این که به نتیجه 100% برسی باید از WPF استفاده بکنی. تکنولوژی WPF یکی از جالبترین قسمتهاش اینه که خودش مدیریت رزولوشن را برای شما انجام میده و برنامه همیشه یکسان دیده میشه.
برای یادگیری WPF هم میتونی از مجموعه ویدئویی شرکت App Dev که به زبان انگلیسی هست استفاده بکنی. به نظر من که عالی آموزش داده.
الان کم کم WindowsForm Application داره کنار میره و WPF جای اون را میگیره به خصوص برای ویندوز های Vista, 7, 8 البته ویندوز 8 هنوز به صورت کامل نیومده ولی حدودا از محیط کاربری مثل ویندوز ویستا و 7 استفاده میکنه. در چنین شرایطی از WPF استفاده بکنی خیلی بهتره چون میتونی از افکتهای جذاب هم در برنامه هات استفاده بکنی.
به همین سادگی:
this.Height = SystemInformation.VirtualScreen.Height;
this.Width = SystemInformation.VirtualScreen.Width;
خوب جناب nunegandom دستوری که شما نوشتید به نظر من فقط در هنگام اجرای برنامه کار میده.
حالا فرض کنید الان کاربر برنامه را تو سیستمی که رزولوشن 768*1024 داره باز میکنه بعد شیطونی میکنه و در حالی که برنامه باز هست میره رزولوشن را میزاره روی 600*800 حالا چیکار باید کرد؟
چه جوری میخواهید به برنامه بگین که بفهمه اگر رزولوشن تغییر کرد دو تا کد فوق کار بده؟
در چنین حالتی هم دو کد بالا کار میده یا نه؟ من تست نکردم اگر کار میده بفرمایید تا استفاده کنیم.
ممنون.
الان تست کردم.
هم میشه هم نمیشه
اگر کاربر فرم ها را بر اساس اصول و با Container های مختلف و حساب شده و با Anchor ها ایجاد کرده باشه کد شما کار میده و گرنه محتویات فرم به هم میریزه ولی توی WPF خود WPF همه چیز را تنظیم میکنه.
دوست عزیز می توانی از این کد استفاده کنی، حتی اگر کاربر در حین کار برنامه resolution سیستم را تغییر دهد باز هم برنامه شما به حالت fullscreen خواهد ماند.
Form1.ActiveForm.WindowState = FormWindowState.Maximized;
سلام
this.Height = Screen.PrimaryScreen.Bounds.Height;
this.Width = Screen.PrimaryScreen.Bounds.Width;
این کد رو مطالعه کنی خیلی از مشکلاتی که داری حل میشه و راحت میتونی همه کار با فرمهات بکنی !!!!
public void CreateMyForm()
{
// Create a new instance of the form.
Form form1 = new Form();
// Create two buttons to use as the accept and cancel buttons.
Button button1 = new Button ();
Button button2 = new Button ();
// Set the text of button1 to "OK".
button1.Text = "OK";
// Set the position of the button on the form.
button1.Location = new Point (10, 10);
// Set the text of button2 to "Cancel".
button2.Text = "Cancel";
// Set the position of the button based on the location of button1.
button2.Location
= new Point (button1.Left, button1.Height + button1.Top + 10);
// Set the caption bar text of the form.
form1.Text = "My Dialog Box";
// Display a help button on the form.
form1.HelpButton = true;
// Define the border style of the form to a dialog box.
form1.FormBorderStyle = FormBorderStyle.FixedDialog;
// Set the MaximizeBox to false to remove the maximize box.
form1.MaximizeBox = false;
// Set the MinimizeBox to false to remove the minimize box.
form1.MinimizeBox = false;
// Set the accept button of the form to button1.
form1.AcceptButton = button1;
// Set the cancel button of the form to button2.
form1.CancelButton = button2;
// Set the start position of the form to the center of the screen.
form1.StartPosition = FormStartPosition.CenterScreen;
// Add button1 to the form.
form1.Controls.Add(button1);
// Add button2 to the form.
form1.Controls.Add(button2);
// Display the form as a modal dialog box.
form1.ShowDialog();
}
به نظر من روش جالبی نیست چون اون تایمر هم باعث استفاده بیش از حد از منابع سیستم میشه.
ضمنا مثلا کاربر در حین کار کردن هست یه مرتبه برنامه قیافش عوض میشه و جالب نیست.
روشی هم که دوستمون با WindowState گفته بودند باید بگم که فقط برای Maximize کردن هست و محتویات فرم در صورت تغییر رزولوشن به هم میریزه.
کلا مدیریت برنامه در تغییر کردن رزولوشن به این راحتی ها نیست من خیلی از مقالات CodeProject و سایت های مشابه را هم سر یه پروژه ای که داشتم چک کردم شاید بگم حدود دو هفته کارم شده بود بررسی این مسئله در WindowsForm Application راهی که 100% بتونه تغییر رزولوشن را مدیریت بکنه و قیافه برنامه بهم نریزه نداریم ولی در WPF با کوچکترین روش ها همه چیز درست کار می کنند.
بهترین راه برای حل مساله، پاک کردن صورت مساله است!!!
میتونید بجای این که سایز برنامه تون رو با توجه به رزولیشن سیستم تغییر بدید، رزولیشن سیستم رو با توجه به سایز برنامه تون عوض کنید!
برای این کار یکی از دوستانمون یک کلاس درست کرده بود که بگردین توی همین سایت پیدا میکنید.
البته این کار معایبی داره. یکی این که شاید کار شما رو راه نندازه. من خودم چند وقت پیش به این مورد برخوردم اما من داشتم یک بازی فول اسکرین درست می کردم اما ممکنه کار شما فرق کنه. دوم این که ممکنه کارت گرافیک طرف رزولیشن مورد نظر شما رو پشتیبانی نکنه. البته اکثر گرافیک ها اندازه هایی مثل 800 * 600 را پشتیبانی می کنند. امیدوارم تونسته باشم کمکی کنم.
اولاندش باید anchor کنترل هاتونو تنظیم کنید تا در تغییر اندازه فرم اختلال ایجاد نشه
بعد خاصیت Windows State فرم اصلی رو Maximized بزاریید
تا برنامه fullScreen بیاد بالا