PDA

View Full Version : سوال:مشخص کردن موقعیت باز شدن پنجره در نقطه ای خاص از مانیتور



ahgrab
جمعه 27 اسفند 1389, 11:15 صبح
سلام خسته نباشید

من میخوام موقعی که برنامه که اجرا میشه در نقطه مورد نظر من باز بشه ،مثلا گوشه چپ مانیتور ،راست ،پایین

مثل زبان vb.6 یک پنجره کوچیک پایین بود تنظیم میکردیم که پنجره های طراحی شده کجا باز بشند؟

من مقدار x,y location را تغییر میدم اما جواب نمیده.

Hossenbor
جمعه 27 اسفند 1389, 11:24 صبح
سلام خاصیت جابجایی رو فعال کن

ahgrab
جمعه 27 اسفند 1389, 13:08 عصر
خاصیت جابجایی تو properties فرم هست؟

کدوم گزینه هست؟

amirh_karimifar
جمعه 27 اسفند 1389, 13:18 عصر
سلام دوست عزیز . ابتدا خاصیت StartPosition v, برابر Manual بذار بعد از اون خاصیت Location رو برابر اون مکانی
که می خوای باشه .

Reza_Yarahmadi
جمعه 27 اسفند 1389, 13:25 عصر
برای اینکه بصورت دستی موقعیت پنجره مورد نظرتون رو تنظیم کنید ابتدا خاصیت StartPosition رو روی Manual قرار بدید سپس خاصیت Location فرم رو تنظیم کنید.
ولی اگر میخواید فرم به یک گوشه صفحه بچسبه باید بصورت زیر عمل کنید
using System.Runtime.InteropServices;

[DllImport("SHELL32", CallingConvention = CallingConvention.StdCall)]
static extern uint SHAppBarMessage(int dwMessage, ref APPBARDATA pData);
struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
struct APPBARDATA
{
public int cbSize;
public IntPtr hWnd;
public int uCallbackMessage;
public int uEdge;
public RECT rc;
public IntPtr lParam;
}

private void Form1_Load(object sender, EventArgs e)
{
int X;
APPBARDATA abd = new APPBARDATA();
SHAppBarMessage(5, ref abd);
X = abd.rc.bottom - abd.rc.top;
X += this.Size.Height;
Screen s = Screen.PrimaryScreen;
this.Location = new Point(s.WorkingArea.Width - this.Size.Width, abd.rc.bottom - X);
}