PDA

View Full Version : سوال: حركت دادن فرم



maythammsp2000
چهارشنبه 15 آذر 1391, 12:18 عصر
سلام دوستان.
فرمي كه رو كه Border Style اون رو None ست شده باشه رو چه طور حركت بديم.(چطور Move كنيم)

Mahmoud.Afrad
چهارشنبه 15 آذر 1391, 13:46 عصر
int x, y;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.Location = new Point(this.Location.X - (x - e.X), this.Location.Y - (y - e.Y));
}
}

mohammad-bahrami
چهارشنبه 15 آذر 1391, 14:25 عصر
به وسیله تابع ای پی آی SendMessage میشه این کار رو انجام داد.

[DllImport("user32.dll")]
static extern int ReleaseCapture();
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
static extern int SendMessage(int hwnd, int wMsg, int wParam, object lParam);
private const int WM_NCLBUTTONDOWN = 161;

private void Form3_Load(object sender, EventArgs e)
{

this.MouseDown += new MouseEventHandler(form3_MouseDown);
}

private void form3_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle.ToInt32(), WM_NCLBUTTONDOWN, 2, 0);
}