PDA

View Full Version : سوال: بهترین موقعیت باز شدن فرم از سلول گرید



sadaf_
یک شنبه 16 بهمن 1390, 09:46 صبح
یکی از ستونهای گرید Button داره که وقتی کاربر روی آن enter یا کلیک میکنه فرمی باز می شه اما موقعیت فرم باز شده در فرم که زیر آن قرار داره درست نیست
چطوری می تونم موقعیت رو خودم تنظیم کنم که فرم درست در جایی باز بشه که سلول گرید هم هست؟
با توجه به نکته که وقتی کاربر به آخرین سطر گرید می رسه موقعیت فرم طوری نباشه که از صفحه مانیتور خارج بشه
ممنون

hamid.karimy
یک شنبه 16 بهمن 1390, 10:43 صبح
YourForm frm = new YourForm ();
frm .StartPosition = FormStartPosition.Manual;
frm .Left = 200;
frm .Top = 200;
frm .ShowDialog();

sadaf_
یک شنبه 16 بهمن 1390, 18:56 عصر
هنوز مشکلم حل نشده
کمکم کنید

shadi khanum
یک شنبه 16 بهمن 1390, 19:28 عصر
دوست عزیز شما باید left و top فرم جدیدتون رو خودتون بر هر اساسی که میخواید Set کنید. مثلا در وسط فرم زیری یا بالا یا هر جای دیگه ای.. باید با محاسبات ساده یاضی left و top فرم جدید رو حساب کنی و به فرم اعمال کنید

hamid.karimy
یک شنبه 16 بهمن 1390, 19:40 عصر
در event موس کلیک می توانید طول و عرض نقطه کلیک شده را بدست بیاورید و به جای 200 که من گذاشتم قرار دهید.

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
int xLocation = e.X;
int yLocation = e.Y;
}

sadaf_
یک شنبه 16 بهمن 1390, 21:04 عصر
اما در هر صورت فرم از مانیتور خارج می شه
یعنی وقتی کاربر بالای فرم رو می گیره و به این طرف و آن طرف می بره فرم از مانیتور خارج می شه
چکار باید انجام داد که فرم در هر صورت همان محیط مانیتور باشه؟

parvizwpf
یک شنبه 16 بهمن 1390, 21:23 عصر
ببینید باید چند بار بری وقتی گریدتو اسکرول میکنید ببینی که مثلا یک سطر در خود گرید چه top , left میگیره.
بعد با محاسبات حلش کنی

hamid.karimy
دوشنبه 17 بهمن 1390, 10:32 صبح
ببینید این که فرم داخل برنامه باشد و بیرون نرود بحث دیگریست که شما یک فرم مادر یا پدر(هنوز بین علما اختلاف نظر هست) می سازید و وقتی فرم دوم را در آن می اندازید از برنامه خارج نمی شود.دوست عزیز من کلا راه اینکه در نقطه دلخواهتان فرم باز شود را گفتم.

majid_mx4
یک شنبه 28 اسفند 1390, 19:42 عصر
خوب دوستان را حل آقای
hamid.karimy (http://barnamenevis.org/member.php?136036-hamid.karimy)
بسیار عالی بود فقط فکر میکنم اگر در قسمت StartUpPosition راهم Manual بکنید کار تمام است هر چند در دستور این را هم نوشته بودند. در هر صورت با دستور زیر در قسمت عمومی فرم

Private Declare Function SetParent Lib "user32" ( _
ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

و با این دستور در فرم لود

SetParent New.hWnd, hWnd

ویا
SetParent NewMO.hWnd, mother.hWnd
که new نام فرم بجه یا کودک
و مادر نام فرم اصلی است که میخواهید فرمها در آن باز شوند.
با تشکر mx4

majid_mx4
یک شنبه 28 اسفند 1390, 19:48 عصر
یاد م رفت بگم دستور

SetParent New.hWnd, hWnd

ویا
SetParent NewMO.hWnd, mother.hWnd

در یک باتم یا دکمه بگذارید .