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

نام تاپیک: فرم در ویژوال بیسیک

  1. #1

    فرم در ویژوال بیسیک

    با سلام و عرض خسته نباشید

    می خواستم در ویژوال بیسیک کاری کنم وقتی پروژه اجرا میشه , فرم همیشه روی سایر پنجره ها قرار بگیره. لطفا راهنمایی کنید چطور می تونم فرمم رو on top کنم.

    با تشکر


  2. #2
    کاربر دائمی آواتار ایلیا آخوندزاده
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تبریز
    پست
    478

    نقل قول: فرم در ویژوال بیسیک

    درود
    من دقیق متوجه نشدم که منظورتون کل برنامتون هست یا فرم خاصی مد نظر دارید برای همین کل جوانبی که منظور رو برسونه مینویسم.

    روش اول: اگر میخواین یک فرم در بالای برنامه های خود در بالای فرم های دیگر بماند (و به کاربر اجازه ندهد که تا زمان بسته شدن از اشکال دیگر استفاده کند) ، میتونین اونو با گزینه vbModal نشان بدین.


    به عنوان مثال ، برای نشان دادن Form2 به این روش از Form1 ، از کدی مانند این استفاده می کنید:


    Form2.Show vbModal

    توجه داشته باشید که هیچ کد در Form1 پس از این خط تا زمان بسته شدن Form2 اجرا نمی شود.





    روش دوم: اگر میخواین فرم مورد نظرتون روی سایر قسمتهای برنامه قرار بدین و به کاربر اجازه بدین در صورت تمایل به فرم دیگری بره ، میتونین فقط ZOrder فرم رو تغییر بدین.


    ZOrder موقعیت عمق "depth"روی صفحه هست


    Form1.ZOrder 0


    (برای ارسال آن به پشت ، میتونین از مقدار 1 به جای 0 استفاده کنید)




    روش 3: اگر میخواین فرم شما بالاتر از همه برنامه های در حال اجرا باقی بماند ، باید از SetWindowPos API call استفاده کنین تا ZOrder رو در ویندوز تغییر بدین بجای برنامه خودتون


    برای استفاده از این API باید کدهای زیر رو اضافه کنید (در بخش اعلان عمومی یک فرم یا ماژول):


    Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
    ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Public Const HWND_TOPMOST = -1
    Public Const HWND_NOTOPMOST = -2
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOSIZE = &H1


    برای تنظیم فرم 1 در Top از فرم های دیگه از این کد استفاده کنید:


    Call SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)


    برای بازگشت فرم به حالت عادی ، این کد مورد نیاز شماست:


    Call SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)


    روش 4: اگر میخواین این فرم تو برنامه خود در بالای بقیه بمونه (نه بالای برنامه های دیگه) و به کاربر اجازه بده تا ضمن نگه داشتن این فرم ، از فرم های دیگه استفاده کنه فرم رو به صورت غیر نشان می دهید. حالت specify و owner را مشخص کنید.


    این کد Form2 رو نشون میده در حالی که Form1 صاحب اونه:


    Form2.Show vbModeless, Form1


    فقط توجه کنین که هر کد بعد از این خط به محض نمایش فرم 2 اجرا میشه (بعد از اتمام Form_Load اگر قبلاً لود نشده باشه).

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: پنج شنبه 25 دی 1393, 19:37 عصر
  2. ویژوال بیسیک روی ویندوز سون مشکل یونیکد دارد
    نوشته شده توسط militi در بخش برنامه نویسی در 6 VB
    پاسخ: 11
    آخرین پست: یک شنبه 31 شهریور 1392, 19:47 عصر
  3. سوال: چرا با ویژوال بیسیک نمیشه فایل hosts رو در ویندوز سون7 رو ادیت کرد ؟
    نوشته شده توسط elimiz در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: پنج شنبه 01 دی 1390, 09:11 صبح
  4. اشکال در اتصال فرم ساخته شده با ویژوال بیسیک با دیتابیس اکسس روی هاست ویندوز
    نوشته شده توسط siaxxx62 در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 4
    آخرین پست: پنج شنبه 08 اردیبهشت 1390, 03:33 صبح
  5. پاسخ: 1
    آخرین پست: چهارشنبه 16 فروردین 1385, 14:49 عصر

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

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