PDA

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



بانوآفتاب
دوشنبه 14 مرداد 1387, 23:08 عصر
سلام به همه دوستان
من یک dll نوشتم،مثل،یک ،TextBox به همراه یک Button ، میخوام کاربر روی این دکمه که کلیک کرد، یک فرم باز بشه که لبش با لبه Button تراز باشه،مثل DateTimePicker، خودم Location فرم رو با موقعیت موس تنظیم میکنم ولی اونجور که میخوام نمیشه.
1 سئوال دیگه اینکه،یک TreeView دارم که یکی از Node هاش فرزنداش عکس هستند، Text نود اسم فایل هست و Tag نود مسیر عکس، میخوام با حرکت موس روی گره هایی که مربوط به عکس هستند اون عکس در یک PictureBox در انتهای کرسر موس بیاد،در این مورد هم باز در پیدا کردن موقعیت این PictureBox مشکل دارم :گریه:
ممنون میشم اگه دوستان منو راهنمایی کنن :بوس:

tthenry14plus
سه شنبه 15 مرداد 1387, 02:07 صبح
سوال اول : خوب موقعیت مورد نظر رو به dll تون ارسال کنید تا هنگام لود، فرم در همان مکان ظاهر بشه.

موقعیت لب به لب به button هم این میشه دیگه :


X = this.Left + button1.Left + button1.Width;
Y = this.Top + button1.Top + button1.Heigh;


سوال دوم:
با استفاده از این متد هم میتونید موقعیت واقعی موس در صفحه نمایش رو بدست بیارید


Control.MousePosition;
Control.MousePosition.X;
Control.MousePosition.Y;

بانوآفتاب
سه شنبه 15 مرداد 1387, 21:50 عصر
دوست عزیز ممنون از راهنماییتون، درمورد سئوال اولم،این روش برای موردی خوبه که کامپوننتم روی فرم باشه و توی هیچ باکس و ... نباشه،راه درستش رو پیدا کردم،تا حالاش که درسته،ممنون میشم اگه اشکالی داره بهم بگید

int x_location, y_location;
Control _patern;
y_location = this.Top;
_patern = this.Parent;
while (_patern != null)
{
y_location += _patern.Top;
if (_patern is TabPage)
y_location +=29;
_patern = _patern.Parent;
}
x_location = this.Left;
_patern = this.Parent;
while (_patern != null)
{
x_location += _patern.Left;
if (_patern is TabPage)
x_location += 3;
_patern = _patern.Parent;
}
y_location += this.Height;
y_location--;
x_location++;


درمورد مشکل دوم هم این روش کار نمیده،امتحانش کرده بودم

tthenry14plus
چهارشنبه 16 مرداد 1387, 01:47 صبح
اگه دوست داشته باشید میتونید نمونه برنامتون رو با کمی توضیح بیشتر برام میل کنید تا بهتر بتونم کمکتون کنم، اینطوری نمیشه ...