PDA

View Full Version : سوال: طریقه استفاده از فرم در UserControl



NewFoxStudent
دوشنبه 24 فروردین 1388, 13:05 عصر
من یه UserControl ساختم که توش از فرم استفاده کردم
مسلماً خروجی این پروژه به Toolbar اضافه نخواهد شد
حالا چطور میتونم از این کنترل بصورت ویژوال توی پروژه هام استفاده کنم

NewFoxStudent
دوشنبه 24 فروردین 1388, 15:02 عصر
این پست برای بالا آمدن تاپیک
اگه کسی میدونه لطفا جواب بده ممنون

jalalx
دوشنبه 24 فروردین 1388, 15:16 عصر
با سلام خدمت دوست عزيز!
من هم قبلا دنبال يه همچين چيزي مي گشتم. اما الان از يه روش ديگه استفاده مي كنم. هر فورمي رو كه به پروژه اضافه مي كنم از اون فرمي كه خودم درست كردم به ارث مي برم. مثلا:


public partial class MainForm : PersianForm

كه در اون PersianForm اون فرمي هست كه من طراحي كردم!:کف:

NewFoxStudent
دوشنبه 24 فروردین 1388, 15:41 عصر
با این روش به صورت ویژوال نمیشه کار کرد
من تویه فرمم یه سری کنترل هم دارم

NewFoxStudent
دوشنبه 24 فروردین 1388, 17:54 عصر
این پست برای بالا آمدن تاپیک
اگه کسی میدونه لطفا جواب بده ممنون

NewFoxStudent
سه شنبه 25 فروردین 1388, 10:17 صبح
کسی نمیدونه

NewFoxStudent
سه شنبه 25 فروردین 1388, 13:13 عصر
اساتید بزرگوار
کسی جواب سوالم رو نمیدونه

Happy_davood
سه شنبه 25 فروردین 1388, 16:11 عصر
بیشتر توضیح بدید .

NewFoxStudent
سه شنبه 25 فروردین 1388, 16:18 عصر
یه UserControl ساختم که توش از فرم استفاده کردم
مسلماً خروجی این پروژه به Toolbar اضافه نخواهد شد
حالا چطور میتونم از این کنترل بصورت ویژوال توی پروژه هام استفاده کنم

این مشخصه
وقتی توی یک UserControl از فرم استفاده بشه چطور میشه اون رو به ToolBar اضافه کرد و یا حتی به پروژه به صورتی که بشه با اون به صورت ویژوال کارکرد و نه با کد نویسی

Happy_davood
سه شنبه 25 فروردین 1388, 18:05 عصر
خوب شما از ادبیات درست استفاده نمی کنی و منظورت واضح نیست .

منظورتون این هست که یه کلاس از کلاس Form مشتق کردی و یه کامپوننت واسه خودت درست کردی .

UserControl وقتی بهتر بگیم که از کلاس UserControl مشتق کرده باشیم .

به هر صورت اگه کامپوننت شما از کلاس Form مشتق شده نمیتونه در ToolBox باشه .

مثلاً اسم کلاس جدید شما MyForm هست . یه فرم عادی اضافه کنید به پروژه و برید این قسمت رو تغییر بدید :




public partial class AnyForm: System.Windows.Forms.Form
{
.
.
.



به این :




public partial class AnyForm: MyForm
{

.
.
.


البته قبلش باید فایل DLL مربوط به اون کلاس مشتق شده رو به Refrence های پروژه اضافه کرده باشید .

NewFoxStudent
سه شنبه 25 فروردین 1388, 18:30 عصر
خوب شما از ادبیات درست استفاده نمی کنی و منظورت واضح نیست

نه دقیقاً منظور من UserControl هست
ببینید من یه پروژه ساختم از نوع یوزر کنترل
داخل این پروژه چندین کلاس هست که همه از UserControl مشتق شده

حالا داخل این پروژه یه فرم Add کردم و این پروژه رو Build کردم
خروجی این پروژه یه فایل Dll ه
فکر کنم حالا از ادبیات درست استفاده کرده باشم
من میخوام از این فرم که یه سری خواص بهش اضافه شده به صورت ویژوال توی پروژه های دیگم استفاده کنم
اگه بازم فکر میکنید که از ادبیات درست استفاده نکردم بگید تا یه مثال بزارم

جوابی که شما دادید همون جواب چند پست بالاتره و من در مورد وراثت اطلاعاتم تقریباً کامله

در ضمن اینکه شما ادبیات رو نمیفهمید و ضعف ادبی دارید دلیل نمیشه که من از ادبیات درست استفاده نمیکنم و همینطور فکر نمیکنم که شما معنی ادبیات رو اصلا بفهمید وگرنه اینجوری صحبت نمیکردید.

NewFoxStudent
سه شنبه 25 فروردین 1388, 18:49 عصر
با سلام خدمت دوست عزيز!
من هم قبلا دنبال يه همچين چيزي مي گشتم. اما الان از يه روش ديگه استفاده مي كنم. هر فورمي رو كه به پروژه اضافه مي كنم از اون فرمي كه خودم درست كردم به ارث مي برم. مثلا:


public partial class MainForm : PersianForm

كه در اون PersianForm اون فرمي هست كه من طراحي كردم!:کف:

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

NewFoxStudent
چهارشنبه 26 فروردین 1388, 09:26 صبح
به نطرتون راه حل دیگه ای موجود نیست

Happy_davood
چهارشنبه 26 فروردین 1388, 10:05 صبح
به نظرم طرز نوشتن من باعث سوء تفاهم شده . منظوره بدی نداشتم . این از خواص این جور محیط هاست . چون همدیگر رو نمیشناسیم ممکنه حرف ها مون بهمون بر بخوره .
به هر حال . یه روش دیگه هم هست !

در حالت دوم از این گزینه استفاده میشه کرد :
Add New Item
بعد از لیست به جای Windows Form باید Inherited Form رو بزنید . اسم فرم رو هم می خواد ازتون . بعد یه پنجره جدید باز می کنه و از شما می خواد که فایل DLL رو انتخاب کنید و داخل فایل رو هم نشون میده تا بتونید کلاس یا کنترل مورد نظرتون رو انتخاب کنید .
این روش حالت ویزاردی همون روش قبلی هست .

به دل نگیرید خلاصه .