View Full Version : حرفه ای: Drog & move
sinashahab
سه شنبه 26 مرداد 1389, 06:47 صبح
سلام دوستان
من یه سوال در این رابطه داشتم که چگونه میشه یه کنترل مثل پیکچر باکس یا هر چیزه دیگه رو دراگ کرد و حرکت داد.
مثل وقتی که شما جای یه کنترل رو هنگام برنامه نویسی تغییر بدی.
این کار رو قبلا توی وی بی ۶ با دستورات ای پی آی انجام داده بودم. حالا که سی شارپ جای خودشو داره!!:لبخند:
ممنون دوستان:تشویق::تشویق:
mmd2009
سه شنبه 26 مرداد 1389, 07:02 صبح
با سلام خدمت دوست عزیزم
به این (http://www.barnamenevis.org/forum/showthread.php?t=98896)تاپیک یک سری بزن مفیده :قلب:
sinashahab
چهارشنبه 27 مرداد 1389, 15:40 عصر
سلام دوستان
خودم می دونم خیلی کم پیدا میشن بعد از رسیدن به جواب بیان و برای بقیه جوابشونو بزارن !:لبخند:
اینم از نت برداری که خودم انجام دادم .
یه کلاس به نام HelperMethods می سازی :
using System;
using System.Runtime.InteropServices;
namespace Tarahi
{
internal static class HelperMethods
{
public static void MoveObject(IntPtr hWnd)
{
SafeNativeMethods.ReleaseCapture();
SafeNativeMethods.SendMessage(hWnd, SafeNativeMethods.WM_NCLBUTTONDOWN, SafeNativeMethods.HTCAPTION, 0);
}
}
}
بعدش یه کلاس دیگه با نام SafeNativeMethods میسازی و اینو میزاری توش :
using System;
using System.Runtime.InteropServices;
namespace Tarahi
{
internal static class SafeNativeMethods
{
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.I4)]
public static extern int SendMessage(
IntPtr hWnd,
[param: MarshalAs(UnmanagedType.U4)]
uint Msg,
[param: MarshalAs(UnmanagedType.U4)]
uint wParam,
[param: MarshalAs(UnmanagedType.I4)]
int lParam);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool ReleaseCapture();
public const uint WM_NCLBUTTONDOWN = 0xA1; // 161
public const uint HTCAPTION = 2;
}
}
آخرش هم این کد رو توی event MouseDown کنترل خود مثلا پیکچر باکس می زازی :
HelperMethods.MoveObject(this.Handle);
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.