PDA

View Full Version : ایجاد فرم درون DLL



mreza80
پنج شنبه 02 آذر 1391, 08:54 صبح
سلام دوستان من مدت اندکی با سی شارپ آشنا شدم لطفا جواب بدین
من درون یک dll میخوام یک فرم درباره درست کنم و از داخل برنامه اصلی انو فرا خوانی نمایم لطفا راهنمائی نمایید . با تشکر

danialafshari
پنج شنبه 02 آذر 1391, 09:20 صبح
سلام دوست عزیز
شما در ابتدا که Visual Studio باز میشود گزینه Windows Form Control Library را انتخاب کنید و همانند یک فرم اون رو طراحی کنید و ذخیره کنید که پروژه نهایی یک dll است. سپس برای فراخوانی روی قسمت Toolbox راست کلیک کرده و گزینه Choose Items... را انتخاب کنید و در همون تب .Net FrameworkComponents دکمه Browse رو بزنید و dll رو Open کنید
موفق باشید

mreza80
پنج شنبه 02 آذر 1391, 09:41 صبح
سلام دوست عزیز
شما در ابتدا که Visual Studio باز میشود گزینه Windows Form Control Library را انتخاب کنید و همانند یک فرم اون رو طراحی کنید و ذخیره کنید که پروژه نهایی یک dll است. سپس برای فراخوانی روی قسمت Toolbox راست کلیک کرده و گزینه Choose Items... را انتخاب کنید و در همون تب .Net FrameworkComponents دکمه Browse رو بزنید و dll رو Open کنید
موفق باشید

دوست گرامی ممنون از لطف شما
من همه اینکاررو انجام دادم و میتونم توابع یک Dll در برنامه فراخوانی کنم
منظور من اینه که در dll ام یک فرم About دارم ویک تابع به صورت زیر نوشتم
public Form ShowAbout()
{
// new FrmAboutBox().ShowDialog(this);

FrmAboutBox frm = new FrmAboutBox();
return frm;

}

حالا میخوام در برنامه اصلی انو فراخوانی کنم چیکار باید بکنم
من کد زیر رو نوشتم جواب نیده
public static MyPublicFunction.MyAllFunc MyFunc = new MyPublicFunction.MyAllFunc();
PublicClassvar.MyFunc.ShowAbout();

کامبیز اسدزاده
پنج شنبه 02 آذر 1391, 09:43 صبح
دوست عزیز برای این کار یک روش راحتری وجود داره

شما یه پروژه از نوع Application ایجاد کن در ساده ترین روش فرمتون رو طراحی کنید ولی کامپایلش نکید ! بعد از مطمئن شدن برید به قمت Properties پروژتون و در قسمت Output type گزینه : Class Library رو انتخاب و کامپایل نمایید.

حالا نوبت اینه برید به پروژه اصلی خودتوت و از قسمت Reference پروژه DLL رو import نمایید.

حال باید در قسمتی که لازمه فرم از رف DLL صدا زده بشه به این صورت عمل کنید:


using {نام پروژه DLL} مثلا :

using MyDLL;

و در داخل بخش نمایش دادن فرم به این صورت :



MyDLL.About MyAbout = new MyDLL.About();
MyAbout.ShowDialog();



وسلام تموم شد.

خیلی راحت و ساده

mreza80
پنج شنبه 02 آذر 1391, 10:32 صبح
دوست عزیز برای این کار یک روش راحتری وجود داره

شما یه پروژه از نوع Application ایجاد کن در ساده ترین روش فرمتون رو طراحی کنید ولی کامپایلش نکید ! بعد از مطمئن شدن برید به قمت Properties پروژتون و در قسمت Output type گزینه : Class Library رو انتخاب و کامپایل نمایید.

حالا نوبت اینه برید به پروژه اصلی خودتوت و از قسمت Reference پروژه DLL رو import نمایید.

حال باید در قسمتی که لازمه فرم از رف DLL صدا زده بشه به این صورت عمل کنید:


using {نام پروژه DLL} مثلا :

using MyDLL;

و در داخل بخش نمایش دادن فرم به این صورت :



MyDLL.About MyAbout = new MyDLL.About();
MyAbout.ShowDialog();



وسلام تموم شد.

خیلی راحت و ساده



ممنون دوست گرامی

کامبیز اسدزاده
پنج شنبه 02 آذر 1391, 10:35 صبح
خواهش میکنم :)

mreza80
پنج شنبه 02 آذر 1391, 12:08 عصر
دوستان حالا در نظر بگیرید میخواهیم یک فرم پیغام هم داشته باشیم با این امکان که قابلیت برگشت پارامتر به برنامه اصلی رو داشته باشه در این صورت مشکل رو چه طوری باید حل کرد ممنون میشم اگه استاتید جواب بدن

کامبیز اسدزاده
پنج شنبه 02 آذر 1391, 12:21 عصر
دوستان حالا در نظر بگیرید میخواهیم یک فرم پیغام هم داشته باشیم با این امکان که قابلیت برگشت پارامتر به برنامه اصلی رو داشته باشه در این صورت مشکل رو چه طوری باید حل کرد ممنون میشم اگه استاتید جواب بدن

من یه مثال ساده برات میزنم.

فرض کن من میخوام پیغامی رو از طرف DLL در پروژه اصلی فراخوانی کنم خب.
به صورت زیر :



public void MyMessage()
{
MessageBox.Show("My Message is OK");

}



حال در پروژه اصلی به صورت زیر فراخوانی میکنیم.



using MyDLL;

در خط لازم ...

MyMessage();





وسلام


توجه داشته باش فقط Void نوع برگشتی نداره فقط پیغام رو نمایش میده و از نوع public باید باشه تا بتونی تو پروژه های دیگه فراخوانیش کنی.