PDA

View Full Version : سوال: جابه جای فرم



mazaher5723
سه شنبه 23 خرداد 1391, 16:13 عصر
سلام دوستان
خاصیت Formborderstyleرو None کردم حالا می خوام هر جا فرمم کلیک موس رو فشار میده و با مکان موس رو تغییر میده فرمم با موس تکون بخوره.
با تشکر مظاهر

Y_Safaiee
سه شنبه 23 خرداد 1391, 16:20 عصر
با سلام خدمت شما

مطابق کد زیر :



using System.Runtime.InteropServices;


namespace WindowsFormsApplication1
{

public partial class Form1 : Form
{
[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;

public Form1()
{
InitializeComponent();
}

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




موفق باشید
بایت بایت

فرید نجفلو
سه شنبه 23 خرداد 1391, 20:08 عصر
سلام
فکر کنم زمان کد های عصر حجری گذشته باشه!!!

این کد ها رو به فرم اضافه کنید(تنظیم Event ها فراموش نشه)

private bool FormInMove = false;
private Point MouseDownPos = new Point();
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
MouseDownPos = (e.Location);
FormInMove = true;
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
FormInMove = false;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (FormInMove)
{
Point Newlocatin = new Point();
Newlocatin.X = PointToScreen(e.Location).X- MouseDownPos.X;
Newlocatin.Y = PointToScreen(e.Location).Y - MouseDownPos.Y;
this.Location = Newlocatin;
}