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

نام تاپیک: فرم بدون نوار عنوان و نحوه جابجایی فرم با نوار عنوان سفارشی شده

  1. #1

    Question فرم بدون نوار عنوان و نحوه جابجایی فرم با نوار عنوان سفارشی شده

    سلام دوستان و خسته نباشيد
    من يه پروژه دارم مينويسم و ميخوام فرمم بدون نوار عنوان باشه يعني خاصيت FormBorderStyle رو بر روي None قرار ميدم. حالا ميخوام خودم يه نوار عنوان واسه فرمم بسازم. مثلا با هر كامپوننتي، مثلا يه دكمه بزارم بالاي فرم به عنوان نوار عنوان.
    ميخوام بدونم وقتي يه كامپوننتي رو به عنوان نوار عنوان در بالاي فرمم قرار دادم، چطور ميتونم فرم رو توسط نوار عنوان ساخته شدم تكان بدم. يعني اون نوار عنوان رو بگيرم و فرم رو اينور اونور ببرم.

    با تشكر.

  2. #2
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: فرم بدون نوار عنوان

    سلام دوست عزیز
    NameSpace زیر رو اضافه کن
    using System.Runtime.InteropServices;

    بعد کد زیر رو تو public partial class بنویس
     [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;

    بعد تو رویداد MouseDown نوارعنوانی که ساختی کد زیر رو بنویس
      ReleaseCapture();
    SendMessage(this.Handle.ToInt32(), WM_NCLBUTTONDOWN, 2, 0);

    موفق باشی

  3. #3

    نقل قول: فرم بدون نوار عنوان

    ممرسي و ممنون
    دوست گرامي اين كدهايي كه شما گفتي رو من نوشتم.
    وقتي برنامه رو اجرا ميكنم به محض اينكه فرم رو تكان ميدم براي خط زير:

    SendMessage(this.Handle.ToInt32(),  WM_NCLBUTTONDOWN, 2, 0);


    اين پيغام به صورت سبز رنگ نمايش داده ميشه

    A call to PInvoke function 'Test1!Test1.Form1::SendMessage' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

    مشكل كجاست؟

  4. #4
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: فرم بدون نوار عنوان

    واست یه نمونه اپ کردم
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار j_naroogha@yahoo.com
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Microfoft Visual Studio Ultimate Version
    سن
    34
    پست
    388

    نقل قول: فرم بدون نوار عنوان

    نقل قول نوشته شده توسط sobaisobai مشاهده تاپیک
    واست یه نمونه اپ کردم
    سلام دوست گرامی
    من فایل رو دیدم. شما یه منو گزاشتین و در رویداد کلیکش دستور خروج رو نوشتین.
    شاید روش خوبی باشه (البته فکر نکنم)
    مابقی دستوراتت چیکار میکنن؟

  6. #6
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: فرم بدون نوار عنوان

    مابقی دستورات وقتی میخوای فرم رو جابه جا کنی فقط باید رو منو کلید کنی و جابه جا کنی

  7. #7
    کاربر دائمی آواتار j_naroogha@yahoo.com
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Microfoft Visual Studio Ultimate Version
    سن
    34
    پست
    388

    نقل قول: فرم بدون نوار عنوان

    نقل قول نوشته شده توسط sobaisobai مشاهده تاپیک
    مابقی دستورات وقتی میخوای فرم رو جابه جا کنی فقط باید رو منو کلید کنی و جابه جا کنی
    مرسی از پیگیریتون.
    بعد اگه خودم منو داشتم چی؟
    اصولا دکمه های منو پایین تر از دکمه های کنترلی قرار میگیرن. برای سایر دکمه ها چی؟

  8. #8
    کاربر دائمی آواتار sobaisobai
    تاریخ عضویت
    آذر 1388
    محل زندگی
    Tehran
    پست
    490

    نقل قول: فرم بدون نوار عنوان

    کد زیر رو تو رویداد MouseDown هر کنترلی بنویسی فقط با کلیک روی اون کنترل میشه فرم رو جابه جا کرد
     ReleaseCapture();
    SendMessage(this.Handle.ToInt32(), WM_NCLBUTTONDOWN, 2, 0);

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

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