PDA

View Full Version : سوال: اجراي کد قبل از لود فرم



hero4000
پنج شنبه 19 فروردین 1389, 11:07 صبح
سلام

ببخشيد احتمالا سوالم خيلي سادست ولي خودم فکرم نرسيد

من ميخوام قبل از اينکه فرمي توي برنامم لود بشه يک سري شرايط رو چک کنم و اون وقت بگم کدوم فرم لود بشه

همچنين ميخواستم بدونم رويداد قبل از فرم لود چيه که بشه دستوراتي رو توش داد

البته اگه قبل از InitializeComponent باشه خوب بهتره

ممنون :لبخندساده:

hero4000
شنبه 21 فروردین 1389, 08:08 صبح
دوستان بخشين سوالم اينقدر ساده بود که حتي ارزش جواب دادن نداشت :کف: :کف:

حداقل بنويسيد که ....

sahele_sheni
شنبه 21 فروردین 1389, 09:15 صبح
سلام دوست عزیز . توی قسمت کد برو . از توی combobox ای که میتونی کنترلهات رو انتخاب کنی کلاس مربوط به اون صفحه رو انتخاب کن (رویدادها رو انتخاب نکن . کلاس اون فرم رو)
حالا از توی combobox کناریش new رو انتخاب کن . این کد ها به برنامت اضافه میشه ....



Public Sub New()
' This call is required by the Windows Form Designer.

InitializeComponent()

' Add any initialization after the InitializeComponent() call.
End Sub

حالا قبل از خط InitializeComponent() کدهایی رو که میخوای بنویس ....

hero4000
شنبه 21 فروردین 1389, 11:44 صبح
با تشکر از شما دوست عزيز

من همين کار رو کردم و يکي از شرايط اينه که اگر فلان شرط درست بود خود همين فرم لود نشه

اونوقت من کدهاي زير رو مينويسم که خود اين فرم لود نشه ولي پيغام خطاي زير ظاهر ميشه لطفا راهنمائي کنين


Public Sub New()
If Not CBool(GetSetting("TelBook", Application.StartupPath, "GetPass", "True")) Then Form1.Show() : Me.Close() : Exit Sub()
' This call is required by the Windows Form Designer.
InitializeComponent()

' Add any initialization after the InitializeComponent() call.

End Sub

در ضمن برنامه وقتي از End Sub رد ميشه بدون اينکه به خطي برسه اين خطا رو ميده

در ضمن اسم فرمم هم FrmGetPass است

Netsky
شنبه 21 فروردین 1389, 13:17 عصر
سلام .
این خطایی که داخل عکس نشون داده شده مربوط به یک آبجکت هست که Dispose شده و دیگه نمیشه باهاش ارتباط برقرار کرد . اون آبجکت فرم شماست . همون FrmGetPass . که حافظه ای رو که بهش اختصاص میدید آزاد میشه و بنابراین دیگه داخل رم نمیمونه .
البته این نظر بنده ست . شاید هم اشتباه میکنم . ولی چیزایی بود که از داخل Error فهمیدم .
موفق باشید .............

Hossis
یک شنبه 22 فروردین 1389, 07:04 صبح
چرا خودتون رو زحمت مي ديد
اصلا معادله رو اشتباه طراحي کرديد.
براي رسيدن به هدفتون بايد يک ماژول ايجاد کرده و در رويداد Sub Main کدهاي مربوط به چک رو نوشته و بعد تعيين کنيد کدوم فرم لود بشه ،‌ و لذا نبايد اين کدها رو داخل فرم اصلي بنويسيد.
البته بايد قبلش در "خصوصيات پروژه" اولين کلاس اجرا شونده را به Sub Main تغيير دهيد.

hero4000
یک شنبه 22 فروردین 1389, 14:29 عصر
چرا خودتون رو زحمت مي ديد
اصلا معادله رو اشتباه طراحي کرديد.
براي رسيدن به هدفتون بايد يک ماژول ايجاد کرده و در رويداد Sub Main کدهاي مربوط به چک رو نوشته و بعد تعيين کنيد کدوم فرم لود بشه ،‌ و لذا نبايد اين کدها رو داخل فرم اصلي بنويسيد.
البته بايد قبلش در "خصوصيات پروژه" اولين کلاس اجرا شونده را به Sub Main تغيير دهيد.

با تشکر از شما

من اين کار رو کردم ولي Sub Main داخل خصوصيات پروژم نيومد براي همينم مجبور شدم از اين راه استفاده کنم

اگه ميشه در مورد ساخت Sub Main توضيح بدين

با تشکر

محسن شامحمدی
یک شنبه 22 فروردین 1389, 15:31 عصر
دوست عزیز Sub Main رویدادی است که در هنگام اجرای برنامه اجرا می شه
و طریقه ایجادش اینطوریه
ابتدا یک ماژول بسازید و توی ماژول بنویسید
public sub main
کدهای شروع برنامتون
این کدها به محض اینکه برنامه اجرابشه اجرا می شن

end sub


حالا برید توی تنظیمات پروژه و Start up form رو بذارید روی sub main

مثلا

public sub main
اگر بی =1 آنگاه
صفحه اول رو باز کن
در غیر اینصورت
صفحه دوم رو باز کن

end sub

hero4000
یک شنبه 22 فروردین 1389, 15:51 عصر
با تشکر از شما دوست عزيز من قبلا هم همين کار رو کرده بودم ولي اسم ماژول من در Start up form نمياد تا انتخابش کنم

راست منظور شما از ماژول همون Module هستش ديگه ؟؟

hero4000
سه شنبه 24 فروردین 1389, 09:57 صبح
Please Help Me

Alirezanet
سه شنبه 24 فروردین 1389, 12:00 عصر
من متاسفانه به Vs دسترسي ندارم ولي همين كار رو كردم قبلا كه كاملا خاطرم نيست ...
كمي توضيح ميدم اگه ناقص بود يا كمكي نكرد بگين تا يه چك كنم براتون دقيق تر توضيح بدم !

ميتوني از Applcation Events استفاده كني ... رويدادهاي مفيدي داره ....
ميتوني از پروپرتيس پروژه پيداش كني ....(پيدا نشد جاي دقيقشو بگين ببينم بگم )
رويدادي كه به كاره شما مياد Application_StartUp هستش كه زمانيكه برنامه لود ميشه اتفاق ميفته !