نمایش نتایج 1 تا 3 از 3

نام تاپیک: Drog & move

  1. #1
    کاربر دائمی آواتار sinashahab
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران و ترک کامپیوتر D:
    پست
    715

    Question Drog & move

    سلام دوستان

    من یه سوال در این رابطه داشتم که چگونه میشه یه کنترل مثل پیکچر باکس یا هر چیزه دیگه رو دراگ کرد و حرکت داد.

    مثل وقتی که شما جای یه کنترل رو هنگام برنامه نویسی تغییر بدی.

    این کار رو قبلا توی وی بی ۶ با دستورات ای پی آی انجام داده بودم. حالا که سی شارپ جای خودشو داره!!

    ممنون دوستان

  2. #2
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: Drog & move

    با سلام خدمت دوست عزیزم

    به این تاپیک یک سری بزن مفیده

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  3. #3
    کاربر دائمی آواتار sinashahab
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران و ترک کامپیوتر D:
    پست
    715

    نقل قول: Drog & move

    سلام دوستان

    خودم می دونم خیلی کم پیدا میشن بعد از رسیدن به جواب بیان و برای بقیه جوابشونو بزارن !
    اینم از نت برداری که خودم انجام دادم .
    یه کلاس به نام 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);

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •