PDA

View Full Version : چطوری میشه جلوی حرکت فرم را گرفت؟



gomnam
دوشنبه 12 شهریور 1386, 17:53 عصر
در واقع من میخوام location یکی از فرم هایم را در قسمت خاصی از برنامم set کنم و نمی خوام که کاربر بتونه اونو تغییر مکان بده

smt_414
دوشنبه 12 شهریور 1386, 18:07 عصر
سلام
اگه سوالتون رو درست فهمیده باشم
شما می تونید از event استفاده کنید ایونت مربوط به move
کد

private void Form1_Move(object sender, EventArgs e)
{
MessageBox.Show("");
}

gomnam
دوشنبه 12 شهریور 1386, 18:13 عصر
عزیز من سوال را درست بخون که پاسخ بی ربط ندین
فکر نکنم سوال مبهم باشه

SMRAH1
دوشنبه 12 شهریور 1386, 19:27 عصر
به نظر نمیاد که جواب بی ربط باشه.
لطفا بیشتر توضیح بدید

gomnam
دوشنبه 12 شهریور 1386, 19:52 عصر
به نظر نمیاد که جواب بی ربط باشه.


شما امتحان کردین؟


اولا که کد نوشته شده جواب نمیده
یعنی با این کد باز هم میشه فرم را جابجا کرد به این دلیله که حرکت موس زود تر از نمایش messageBox اتفاق میافته و یکمی فرم تغییر مکان پیدا میکنه

تازه اگه کد هم جواب بده اصلان روش معقول و بدرد بخوری نیست چون درست نیست که .... بخوایم messagebox به کاربر نشون بدیم که مثلا آقا فرم غیر قابل جابجایی هست یا حتی یه messageBox خالی نشون بدیم (خیلی مسخرست نه؟)



لطفا بیشتر توضیح بدید


فکر نکنم سوال اونقدر مبهم باشه که نیاز به این همه توضیح داشته باشه ولی با این حال چشم
به عنوان مثال من یه فرم دارم که میخوام Location اونو به مقدار (10و10) تنظیم کنم
حالا نمیخوام کاربر بتونه تحت هیچ شرایطی این مکان را تغییر بده
از این واضخ تر دیگه نمیتونم بگم :اشتباه:


لطفا کد های تست شده بدید

mehdi.mousavi
دوشنبه 12 شهریور 1386, 21:01 عصر
در واقع من میخوام location یکی از فرم هایم را در قسمت خاصی از برنامم set کنم و نمی خوام که کاربر بتونه اونو تغییر مکان بده


سلام.
ابتدا تعاریف زیر رو به فرم خودتون اضافه کنید:


private const Int32 SC_MOVE = 0xf010;
private const Int32 MF_BYCOMMAND = 0x00000000;

[DllImport("user32.dll")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, Boolean bRevert);

[DllImport("user32.dll")]
private static extern Boolean RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags);

سپس در OnLoad فرم، کد زیر رو بنویسید:



RemoveMenu(GetSystemMenu(this.Handle, false), SC_MOVE, MF_BYCOMMAND);

smt_414
دوشنبه 12 شهریور 1386, 21:20 عصر
سلام
ممنون از لطفتون !
اون کد فقط یک نمونه از شیوه استفاده از کد بود
اگه بیشتر توی تایپیک های سایت , جستجو کنید به این نمونه کدها بر می خورید

Amir Oveisi
سه شنبه 13 شهریور 1386, 00:48 صبح
تو این فایل سه روش واسه اینکار هست هر کدوم مناسب بود استفاده کن.