PDA

View Full Version : سوال: جابجا کردن کنترل Picturebox روی فرم



charkhkar
یک شنبه 29 آبان 1390, 15:29 عصر
سلام
من می خوام کنترل picture box رو روی فرم جابجا کنم کسی می تونه کمکم کنه
با تشکر.

Farshid007
یک شنبه 29 آبان 1390, 17:20 عصر
//تغییر مکان عکس به مختصات 0و 0
PictureBox1.Location = new Point(0, 0);

Farshid007
یک شنبه 29 آبان 1390, 17:21 عصر
منظورتون اینه یا اینکه کاربر بتونه عکس رو جابه جا کنه؟

charkhkar
یک شنبه 29 آبان 1390, 18:22 عصر
سلام
من یک آرایه ای از PicturesBox بعد از لود شدن فرم ایجاد کردم می خوام کاربر با کلیک کردن و حرکت دادن pictureBox حرکت کنه
ممنون

Farshid007
یک شنبه 29 آبان 1390, 20:20 عصر
برای اینکار:
1-این متغیر هارو پابلیش کن:
int X1;
int Y1;
int X2;
int Y2;
2- تو رویداد pictureBox1_MouseDown اینو بنویس:
X1 = pictureBox1.Location.X;
Y1 = pictureBox1.Location.Y;
X2 = MousePosition.X;
Y2 = MousePosition.Y;
3- تو رویداد pictureBox1_MouseMove اینو بنویس:
if (e.Button == MouseButtons.Left)
{
pictureBox1.Location = new Point(X1 + (MousePosition.X - X2), Y1 + (MousePosition.Y - Y2));
}
واسه قشنگی هم می تونی Cursor پیکچر باکسو بزاری SizeAll

wolf_majid
یک شنبه 29 آبان 1390, 20:37 عصر
از این کمپوننت استفاده کنید و خصوصیت CanMove اون را true کنید

http://www.4shared.com/file/pEVcap1H/myPictureBox.html

charkhkar
یک شنبه 29 آبان 1390, 23:07 عصر
من آرایه ای از picturBoxدارم از کجا باید بفهمم رو کدوم PictureBox کلیک کرده تا اون رو جابجا کنم من این کد رو نوشتم ولی بار اول کار می کنه ولی زمانی که روی یک radioButton دیگه کلیک می کنم و بر می گردم می خوام جابجا کنم pictureBox رو از صفحه خارج می کنه
با تشکر.

private void Pic_MouseDown(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
}



private void Pic_MouseMove(object sender, MouseEventArgs e)
{
if (radioButton1.Checked == true)
{
if (e.Button == MouseButtons.Left || e.Button == MouseButtons.Right)
{
((PictureBox)sender).Left = (((PictureBox)sender).Left + e.X) - x;
((PictureBox)sender).Top = (((PictureBox)sender).Top + e.Y) - y;
}
}
}




private void Click_Rd(object sender, MouseEventArgs e)
{
for (int i = 0; i < ids; i++)
{
picbox[i].MouseDown += new MouseEventHandler(Pic_MouseDown);
picbox[i].MouseMove += new MouseEventHandler(Pic_MouseMove);
}
}

wolf_majid
دوشنبه 30 آبان 1390, 05:50 صبح
ژمانیکه روی rBtn دیگه کلیک می کنی رخداد مورد نظر رو ازشون بگیر
for (int i = 0; i < ids; i++)
{
picbox[i].MouseDown -= newMouseEventHandler(Pic_MouseDown);
picbox[i].MouseMove -= newMouseEventHandler(Pic_MouseMove);
}