PDA

View Full Version : چطوری میشه موقعیت فرم رو با کلیک تغییر داد؟



combo_ci
پنج شنبه 22 فروردین 1387, 14:38 عصر
سلام
من یه برنامه نوشتم که با کلیک روی هر جای فرم و کشیدن فرم به جاهای دیگه صفحه میشه جای فرم رو تغییر داد
روی این فرم یه picture box وجود داره که من میخوام وقتی رو اوون picture box کردم و جای دیگه صفحه کشیدم فرم حرکت کنه
کسی میتونه کمک کنه؟

newgoldenman
پنج شنبه 22 فروردین 1387, 15:40 عصر
دوست عزیز
من برنامتون رو دانلود کردم. ولی من VB بلد نیستم!

فکر کنم انجمن VB اگر مطرح کنید سوالتون رو بهتر باشه.

newgoldenman
پنج شنبه 22 فروردین 1387, 17:53 عصر
combo_ci (http://barnamenevis.org/forum/member.php?u=11209) جان،
این کد رو برای دو تا از Event های pictureBox1 اضافه کن:

private int x, y;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
x = pictureBox1.Location.X;
y = pictureBox1.Location.Y;

}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
pictureBox1.Location = new Point(pictureBox1.Location.X + (e.X - x), pictureBox1.Location.Y + (e.Y - y));
}
}ایده ی خوبی هست برای حرکت دادن هر شیئی،از جمله خود فرم.
از همین روش برای حرکت دادن فرم های خودم استفاده میکنم. فقط 3خط کد هست و هیچ چیز اضافه ای هم نداره. این کدش:

public partial class Form1 : Form
{


public Form1()
{
InitializeComponent();
}
private int x, y;
private void Form1_MouseDown_1(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
}
private void Form1_MouseMove_1(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Location = new Point(this.Location.X + (e.X - x), this.Location.Y + (e.Y - y));
}
}
}
نمونه اش رو هم attach کردم.

combo_ci
پنج شنبه 22 فروردین 1387, 18:20 عصر
من میخواستم با حرکت picture box فرم هم حرکت کنه...اما الان picture box داخل فرم حرکت میکنه...!!!

combo_ci
یک شنبه 25 فروردین 1387, 19:17 عصر
از دوستان کسی نمیتونه کمک کنه؟

naeeme
یک شنبه 25 فروردین 1387, 20:31 عصر
خوب، در کدی که برای pictureBox نوشته شده به جای


pictureBox1.Location = new Point(pictureBox1.Location.X + (e.X - x), pictureBox1.Location.Y + (e.Y - y));

کافیه بنویسید



this.Location = new Point(this.Location.X + (e.X - x), this.Location.Y + (e.Y - y));