PDA

View Full Version : سوال: باز شدن فرم در سمت راست دسکتاپ !؟



ghasem110deh
شنبه 01 اسفند 1394, 13:43 عصر
سلام به همه ...
دوستان من از این کد استفاده کردم واسه باز کردن فرم اصلی برنامه سمت راست دسکتاپ (مانیتور)


protected override void OnLoad(EventArgs e)
{
PlaceLowerRight();
base.OnLoad(e);
}


private void PlaceLowerRight()
{
Screen rightmost = Screen.AllScreens[0];
foreach (Screen screen in Screen.AllScreens)
{
if (screen.WorkingArea.Right > rightmost.WorkingArea.Right)
rightmost = screen;
}
this.Left = rightmost.WorkingArea.Right - this.Width;
this.Top = rightmost.WorkingArea.Bottom - this.Height;
}


منتها خروجیش اینطوریه (عکس اول) - الان اگه توی مانیتوری که بزرگه کوچیک می مونه و توی مانیتوری که کوچیکه نصف ش میره زیر زمین !
میخوام مثل عکس دوم بشه ... (از لحاظ ارتفاع فیکس بشه با ارتفاع مانیتور)

alexmcse
شنبه 01 اسفند 1394, 14:19 عصر
سلام
شاید کارتو راه بیندازد

private void PlaceLowerRight() {
Screen rightmost = Screen.AllScreens[0];
foreach (Screen screen in Screen.AllScreens)
{
if (screen.WorkingArea.Right > rightmost.WorkingArea.Right)
rightmost = screen;
}
this.Left = rightmost.WorkingArea.Right - this.Width;
// this.Top = rightmost.WorkingArea.Bottom - this.Height;
this.Size=new Size( Size.Width ,rightmost.WorkingArea.Height );


}

golestan1
شنبه 01 اسفند 1394, 14:51 عصر
ابتدا رفرنس رو اد کن PresentationFramework از تب نت

به نسبت فرم اعداد رو تغییر بده

this.Top = 0;
this.Left = (int)System.Windows.SystemParameters.VirtualScreen Width - 125;

ghasem110deh
شنبه 01 اسفند 1394, 15:14 عصر
هیچکدوم جواب نداد ...
نصف فرم بیرونه (یا از سمت راست خارج میشه و یا میره زیر ) تسکبار

Mahmoud Zaad
شنبه 01 اسفند 1394, 15:40 عصر
سلام
این (http://www.codeproject.com/Questions/461211/How-to-open-window-right-side-in-screen) باید جواب بده.

اینم برای ارتفاع:
this.Height = Screen.PrimaryScreen.WorkingArea.Height;

توی همون لود فرم نوشته میشه.

golestan1
شنبه 01 اسفند 1394, 15:55 عصر
هیچکدوم جواب نداد ...
نصف فرم بیرونه (یا از سمت راست خارج میشه و یا میره زیر ) تسکبار

شما باید خودت به نسبت اندازه فرم تنظیم کن کد پایین ابتدا از Top = 0 محل شروع از بالاست و 300 هم اندازه فاصله از راست است
فرم رو 300 در 300 در نظر بگیر دقیق سمت راست می افته

this.Top = 0;
this.Left = (int)System.Windows.SystemParameters.VirtualScreen Width -300;

alexmcse
شنبه 01 اسفند 1394, 15:58 عصر
امتحان کن
private void PlaceLowerRight() {
Screen rightmost = Screen.AllScreens[0];
foreach (Screen screen in Screen.AllScreens)
{
if (screen.WorkingArea.Right > rightmost.WorkingArea.Right)
rightmost = screen;
}
this.Left = rightmost.WorkingArea.Right - this.Width;
// this.Top = rightmost.WorkingArea.Bottom - this.Height;
int i = new Microsoft.VisualBasic.Devices.Computer().Screen.Wo rkingArea.Height;
this.Size=new Size( Size.Width , i);


}