PDA

View Full Version : استفاده از فرم در کلاس



Shahram_12
شنبه 09 دی 1391, 17:34 عصر
با سلام
من برای ساخن فرم Login در برنامم میخوام هز فرم موجود در کلاس استفاده کنم ولی وقتی کلاس رو بوسیله دستور Using اضافه میکنم خطا میگیره و فرمم رو هم نمیشناسه
خواهش میکنم اول برنامه نمونه رو پیوست کردم محبت کنید ببینید بعد راه حلی که مبه نظرتون میرسه رو بگین
متشکرم

morteza5358
شنبه 09 دی 1391, 21:09 عصر
سلام
من که از از برنامت چیزی نفهمیدم.......
شما میتونی یه ClassLibrary درست کنی و یه فرم توش بذاری.
بعد فایل Dll رو تو Refrences های پروژت اضافه کن و هز وقت با فرمت کار داشتی از تو فایل صداش بزن!

Shahram_12
یک شنبه 10 دی 1391, 04:43 صبح
مرسی دوست من
برنامم که چیزی نداشت من منظورت رو از نفهمیدن نمیدونم
من فقط میخواستم برنامم بتونه فرم موجود در کلاس رو فرا خونی کنه
اینی رو که گفتی میدونستم یعنی اول برنامه کلاسم رو به DLL تبدیل کنم بعد اونو فرا خونی کنم فقط مشکل اینه که هر بار تغییرات درون اون لزوم تبدیل فایل اول به DLL رو داره تا بشه ازش استفاده کرد میخوام بدونم بدون تبدیل کردن اون نمیشه اونو فراخونی کرد و مورد استفاده قرار داد
باز هم از لطفت متشکر

gwbasic
یک شنبه 10 دی 1391, 07:06 صبح
فکر کنم قبلا هم در این مورد تاپیک زدید اما به توضیحات دقت نکردید!
شما یک Class Library با نام ClassForm درست کردید و فرم مورد نظرتون رو دراین پروژه قرار دادید و برای استفاده از اون یک پروژه دیگه ای تعریف کردید که UseClassForm نام داره، تا اینجا همه چیز درسته اما یک نکته که بارها اشاره شد رو در نظر نگرفتین. برای استفاده از یک پروژه در پروژه دیگر باید اونو Add Reference کنید! همین

پس شما روی آیتم References در پروژه UseClassForm کلیک راست کرده و پروژه ClassForm رو Add Reference کنید.

Shahram_12
دوشنبه 11 دی 1391, 05:05 صبح
متشکر از لطفت شما

من کار شما رو انجام دادم و اون رو اضافه کردم اما هنوز نمیتونم فرمم رو نشون بدم

اگر مشکم خیلی پیش پا افتاده هست منو ببخشید ولی گیر کردم

gwbasic
دوشنبه 11 دی 1391, 07:37 صبح
اشکالی نداره اگه موضوع هرچند ساده ای رو ندونی ولی اگه می خوای برنامه نویس بشی باید خیلی سمج باشی و دائم با کدت سروکله بزنی (البته همینکه این موضوع رو داری در همین سایت پیگیری می کنی یعنی اینکه سمج هستی و این خوبه!!!)

مفهوم namespace رو بدرستی متوجه نشدی. وقتی شما یک namespace رو به صورت ClassForm.Forms تعریف می کنی و داخل این namespace فرم LoginForm رو می سازی، بنابراین هنگام استفاده در جای دیگه باید به همین شکل آدرس بدی:
یا باید به صورت کامل آدرس بدی یعنی : ClassForm.Forms.LoginForm
یا باید ابتدا در using فضای نام رو مشخص کنی بعد نام فرم :

using ClassForm.Forms;

Application.Run(new LoginForm());


امیدوارم این دفه دیگه مشکلی نداشته باشی

Shahram_12
سه شنبه 12 دی 1391, 22:10 عصر
با تشکر از تمامی دوستان برای راهنمایی

به خصوص استاد گرامی gwbasic

یک سوال دیگه داشتم من تونستم فرمم رو در کلاس بسازم حالا اگه بخوام از این فرم ساخته شده در برنامه دو یا چند بار استفاده کنم چجوری مستونم اینکار رو بکنم

یعنی در برنامه اصلی اون رو یک بار فرا خونی کنم با یک سری اطلاعات مثلاً تکست باکس ، کمبو باکس و .... حالا بعد از انجام کارهام اون فرم رو ببندم بعد بیام و همون فرم رو مجدداً باز کنم و اطلاعات جدید و حتی کامپوننت های جدید درون اون قرار بدم

gwbasic
چهارشنبه 13 دی 1391, 07:43 صبح
منظور شما از "من تونستم فرمم رو در کلاس بسازم" احتمالا Class Library هست. اگه فرمی چه در داخل چه در dll جداگانه نوشته بشه نحوه استفاده فرقی نمی کنه در نهایت هر فرمی یک Class هست و برای استفاده از اون کلاس باید یک نمونه insatance از اون ساخت و استفاده کرد بنابراین کافیه شما یک نمونه از فرمتون new کنید و در نهایت توسط متد show فرم رو نمایش بدین.
برای نمونه می تونید پروژه ثبت سفارشات منو ببینید که چطور با فرمها کار می کنن.

توصیه می کنم یک مبحث رو بطور کامل بخونید (از یک یا چند کتاب) و بعد از تست و بررسی کدهای همون مبحث اگه سوالی گنگ بود به دنبال جوابش بگردید. منظور من دقیقا اینه که بر اسا درک یک مفهوم جلو برید نه به صورت سوال و جواب. وقتی شما یک مفهوم رو درک کنید نسبت به اون دید پیدا می کنید اما اگه به صورت سوال و جواب پیش برید مسیر رو بر اساس ذهنیت خودتون جلو می رید که شاید لزوما راه درست یا بهینه ای نباشه