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

نام تاپیک: ایمپورت کردن فرم جدا طراحی شده در یک برنامه در حال اجرا در ویندوز فرم C#‎‎

  1. #1
    کاربر جدید
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تهران
    سن
    38
    پست
    2

    Question ایمپورت کردن فرم جدا طراحی شده در یک برنامه در حال اجرا در ویندوز فرم C#‎‎

    باسلام. یک برنامه ای دارم مینویسم با ویندوز فرم سی شارپ به صورت برنامه اصلی و مادر که قرار است در آینده یکسری فرم هایی که طراحی میکنم را در حالت اجرا به اون برنامه اضافه کنیم. میخواستم ببینم کسی این کار را کرده و آیا میشه مثلا بعد طراحی یک فرم اون رو به صورت فایل xml در آورد و بعد توسط برنامه اصلی اونو ایپورت کرد و فرم را برای همیشه به اون برنامه اضافه کرد.
    تقریبا مثل اینکه تو ورد یا هر برنامه template داره و قالب آماده اضافه میشه یا توی اکسز جدول ایمپورت می کنیم. متشکر

  2. #2

    نقل قول: ایپورت کردن فرم جدا طراحی شده در یک برنامه در حال اجرا در ویندوز فرم C#‎‎

    نقل قول نوشته شده توسط Hossein_C#‎‎‎_sabz مشاهده تاپیک
    باسلام. یک برنامه ای دارم مینویسم با ویندوز فرم سی شارپ به صورت برنامه اصلی و مادر که قرار است در آینده یکسری فرم هایی که طراحی میکنم را در حالت اجرا به اون برنامه اضافه کنیم. میخواستم ببینم کسی این کار را کرده و آیا میشه مثلا بعد طراحی یک فرم اون رو به صورت فایل xml در آورد و بعد توسط برنامه اصلی اونو ایپورت کرد و فرم را برای همیشه به اون برنامه اضافه کرد.
    تقریبا مثل اینکه تو ورد یا هر برنامه template داره و قالب آماده اضافه میشه یا توی اکسز جدول ایمپورت می کنیم. متشکر
    راه حل های متفاوتی هست، من صرفا چند موردش رو پیشنهاد می کنم.

    یک حالت اینه که شما نمی خواهید بجز پروژه اصلی پروژه متفاوتی باشه، یک پروژه اصلی دارید که خروجی اش فایل اجرایی Windows Forms است و فرم هایی که قبلا در پروژه های دیگری ساخته اید رو با ...Project > Add Existing Item به پروژه اضافه می کنید، با در نظر گرفتن اینکه موقع Add کردن فایل هایی که از جای دیگری انتخاب می کنید، بجای دکمه Add از دکمه Add As Link استفاده می کنید تا بجای یک کپی ازش به همون فایل اصلی ارجاع داده بشه. اینطوری اگر تغییری هم در فرم دادید، در همه پروژه هایی که اون فرم رو استفاده کردند تاثیر میذاره. البته اگر خواستید اینطور پروژه ها رو در جایی آرشیو کنید یا به سیستم دیگری منتقل کنید باید حواستون باشه که همه فایل ها در پوشه خود پروژه نیست و فایل هایی که بهشون Link داده اید در مسیر پوشه متفاوتی قرار دارند. برای پروژه های کوچک مناسبه ولی برای پروژه های جامع توصیه اش نمی کنم.
    addaslink.png
    یک حالت دیگه اینه که شما می خواهید فرم ها رو در قالب پروژه های جانبی ایجاد کنید و در پروژه اصلی نمایش شون بدهید.
    در این حالت شما پروژه های جانبی رو بصورت Windows Forms Control Library ایجاد می کنید.
    سپس در Solution پروژه اصلی این پروژه های جانبی رو اضافه می کنید (...File > Add > Extsiting Project)
    و به پروژه اضافه شده رفرنس می دهید یعنی تیک میزنید. (Project > Add Reference... > Projects)
    حالا می توانید در هر جایی از پروژه اصلی با اضافه کردن اسم اون پروژه جانبی (اضافه کردن namespace اش) از فرم مورد نظر شیء ایجاد کنید و نمایش بدهید.
    مثلا از فرم WindowsFormsControlLibrary1.Form1 شیء بسازید.

    یک حالت دیگه اینه که شما می خواهید dll هایی بصورت پلاگین بسازید که الان موقع ساختن پروژه اصلی هنوز طراحی نشده اند و ممکنه در آینده dll های جدیدی بسازید که فرم های متفاوتی دارند. این حالت یعنی شما موقع ساختن پروژه اصلی نمی دونید Form1 ای که داخل یک پلاگین dll بعدا به برنامه اضافه میشه چه شکلی است.
    بر خلاف ظاهرش پیچیده نیست، شما اسمبلی dll مورد نظر رو میخونید و ازش می خواهید که Form1 رو نشون بده. شما می توانید هر Windows Forms Control Library ای که Form1 ای داره رو جایگزین اون dll قبلی کنید تا فرم متفاوتی نمایش داده بشه.
    در مثال پیوستی (Solution ئه CallDllFormSample.sln) یک برنامه اصلی هست که تا موقع اجرا نمیدونه چند تا پلاگین dll داره و موقع اجرا میتونه هر فرمی که در اون dll ها هست نمایش بده. دقت کنید که Solution رو در ویژوال استدیو باز کنید تا پروژه های جانبی هم باز بشن و فایل های dll جانبی Build بشه.

    CallDllFormSample.zip

    runtime.zip

  3. #3
    کاربر جدید
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تهران
    سن
    38
    پست
    2

    نقل قول: ایمپورت کردن فرم جدا طراحی شده در یک برنامه در حال اجرا در ویندوز فرم C#‎‎

    ممنون مهندس جان، بابت پاسخ جامع و کاملتون. امتحان میکنم نتیجه رو عرض میکنم خدمتتون.

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

  1. پاسخ: 7
    آخرین پست: یک شنبه 08 تیر 1393, 04:41 صبح
  2. سوال: ارتباط پورت سریال بابرنامه های های ویندوز
    نوشته شده توسط mhmd.tv در بخش C#‎‎
    پاسخ: 0
    آخرین پست: دوشنبه 17 تیر 1392, 11:38 صبح
  3. سوال: آیا ویندوز 7 ویژوال استودیو 2005را ساپورت می کند؟
    نوشته شده توسط nilmil_nil در بخش C#‎‎
    پاسخ: 11
    آخرین پست: جمعه 17 خرداد 1392, 10:46 صبح
  4. سوال: ورود به پوشه ویندوز در شبکه
    نوشته شده توسط saeed_r67 در بخش شبکه و Networking‌
    پاسخ: 3
    آخرین پست: چهارشنبه 12 آبان 1389, 17:05 عصر
  5. سوال: یافتن آدرس پوشه ویندوز
    نوشته شده توسط Netsky در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 05 اسفند 1387, 21:00 عصر

برچسب های این تاپیک

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

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