PDA

View Full Version : سوال: جابجا کردن و تغيير اندازه يک کنترل موقع اجراي برنامه



javadaskari
جمعه 26 تیر 1388, 21:23 عصر
سلام
سوالم از عنوان واضح است.من يک کنترل به شکل فرم ويستا درست کردن ولي حالا ميخوم کاربر بتواند آن را با درگ کردن موس در چهار طرف فرم آن را بزرگ و کوچک کند؟ با تشکر

مهدی رحیم زاده
شنبه 27 تیر 1388, 07:34 صبح
Contorol.size=new size(125,220);
که بجای عددای من شما اندازه جدید رو وارد می کنید . و

contorol.location=new point(125,220);
اینم مثل بالا

javadaskari
شنبه 27 تیر 1388, 14:16 عصر
نه من منظورم اين بود که کاربر بتواند با موس کنترل را در سرتاسر فرم حرکت داده و يا تغيير اندازه دهد.نه اينکه ابتدا اندازه و مکان داده شود و ديگر قابل تغيير توسط کاربر نباشد!....

mohkami
شنبه 27 تیر 1388, 15:21 عصر
سلام،
برای جابجایی کلاست از این کد استفاده کن:



class Class1:Control
{

bool drag;
private Point _offset;


protected override void OnMouseMove(MouseEventArgs e)
{
if (drag)
{
Point currentScreenPos = PointToScreen(e.Location);
Location = new Point
(currentScreenPos.X - _offset.X-Parent.Location.X,
currentScreenPos.Y - _offset.Y-Parent.Location.Y);
}
base.OnMouseMove(e);
}

protected override void OnMouseUp(MouseEventArgs e)
{
drag = false;
base.OnMouseUp(e);
}

protected override void OnMouseDown(MouseEventArgs e)
{
_offset.X = e.X+4;
_offset.Y = e.Y+30;
drag = true;
base.OnMouseDown(e);
}
}