درگ کردن فرم در سی شارپ :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

💢 دوستانم بی دفاع و دشمنانم بی جواب نخواهند ماند 💢

-->
آخرین نظرات
  • ۶ ارديبهشت ۰۳، ۱۶:۱۵ - hidden
    test

سلام خدمت دوستان عزیز، به درخواست یکی از دوستای عزیزمون به نام Prshacker تصمیم گرفتم این پست رو بنویسم. توو این پست میگم که چطور بتونین با استفاده از همه ی قسمت یک فرم، فرم رو درگ و جابه جا کنین، این کار برای مواقعی ضروری میشه که خاصیت Form Border Style رو برابر None قرار بدین...


این کار دو راه داره، اولین راه نیاز به ادد کردن API یا کتابخونه داره، دومین راه نه نیازی به این کار نیست، هردو روش رو خدمتتون عرض میکنم.

روش اول:

اول کتابخونه زیر رو اضافه کنین:

using System.Runtime.InteropServices;

بعد کد زیر رو بنویسین:

[DllImport("user32.dll")]
static extern int ReleaseCapture();
[DllImport("user32.dll", EntryPoint ="SendMessageA")]
static extern int SendMessage(int hwnd, intwMsg, int wParam, object lParam);
private const int WM_NCLBUTTONDOWN = 161;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle.ToInt32(), WM_NCLBUTTONDOWN, 2, 0);
}

دقت کنین که با توجه به کد بالا، دو خط آخر رو باید در قسمت MouseDown بنویسین که در قسمت Event این خاصیت رو ادد کنین...

خب این راه اول بود، حالا روش دوم بدون نیاز به ادد کردن API 

 

روش دوم:

کد زیر رو بنویسین:

private bool dragging;
private Point pointClicked;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
dragging = true;
pointClicked = new Point(e.X, e.Y);
}
else
{
dragging = false;
}
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (dragging)
{
Point pointMoveTo;
pointMoveTo = this.PointToScreen(newPoint(e.X, e.Y));
pointMoveTo.Offset(-pointClicked.X, -pointClicked.Y);
this.Location = pointMoveTo;
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
dragging = false;
}

خب اینجا هم علاوه بر خاصیتی که بالا گفتم باید MouesMove و MouseUp رو هم ادد کنین.

حله حالا میتونین توسط هرقسمتی از فرم که خواستین، فرم رو جابه جا یا درگ کنین...

سوالی چیزی بود درخدمتیم...


 ایرانی همیشه سرافراز 

نظر (۲)

بسیار عالی

Virus32 32 Attacker ‌ :
فداات

سلام و عرض ادب خدمت زحمت کشان این وبلاگ و تشکر ویژه بابت آموزشاتون امیدوارم که همیشه سرافراز و پیروز باشید.
من خیلی وقت نیست که با وبلاگتون آشنا شدم و خیلی خیلی عالی و خوشم اومد.
همچنین بیشتر از مطالب برنامه نویسی سی شارپ و بنده خیلی دوست دارم که این زبان برنامه نویسی رو یاد بگیرم و برنامه بنویسیم.
می خواستم بدونم توصیه و راهکار شما برای یادگیری سریع این زبان چیست (کتاب و...) و خوشحال میشم که معرفی کنید.

باتشکر

Virus32 32 Attacker ‌ :
سلام برار قربونت لطف داری عزیز، برات آرزوی موفقیت دارم، برای اینکه سی شارپ رو زود تر یاد بگیری سعی کن بیشتر پروژه محور پیش بری و واسه خودت ایده هایی در نظر بگیر و سعی کن اونا رو پیاده کنی و اون برنامه رو بنویسی، هرجا هم با مشکلی برخوردی چیزی خواستی میتونی توو گوگل سرچ کنی یا توو این وب هم بپرسی ما در خدمتیم ;)
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی