PDA

View Full Version : سوال: باز کردن یک فرم مجزا در برنامه



morika
دوشنبه 07 شهریور 1390, 14:16 عصر
سلام
می خواستم ببینم راهی هست که بشه یه فرم مجزا از برنامه رو تو برنامه در حال اجرا باز کرد؟
یعنی مثلا ما یه فرم طراحی می کنیم تو یه پروژه بعد فایلهای این فرم رو کپی می کنیم تو مسیر جاری برنامه دوم
حالا تو برنامه دوم می خوام با کد نویسی این فرم اول رو باز کنم. دقیقا این فرمهای خود برنامه اول. همچین چیزی شدنیه؟
البته قبلا دوستان راجع به یه مبحصی صحبت کردن که باز کردن یه برنامه دیگه از داخل برنامه جاری بود. من اون کارو نمی خوام انجام بدم. در واقع می خوام یکی از فرمهایی که تو برنامه جاری بهش احتیاج دارم جای دیگه و جداگونه نوشته شده باشه و بعد به برنمه اصلی اضافه بشه.
میشه همچین کاری کرد؟
ممنون

h_a_m_i_d
دوشنبه 07 شهریور 1390, 14:32 عصر
سلام دوست عزیز خیلی گنگ نوشتید و من منظورتون رو نفهمیدم
یعنی میخواین دوتا فرم رو در برنامه داشته باشین در اینصورت
form1.show
form1.showdialog
حل میشه منظورتون اینه
اگر نیست دوباره واضح تر بپرسید
امیدوارم کمکتون کرده باشم
:تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق::تشویق::تشویق::تشویق::تش یق::تشویق::تشویق::تشویق::تشو ق::تشویق::تشویق::تشویق::تشوی ::تشویق::تشویق::تشویق::تشویق: :تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق::تشویق::ت ویق::تشویق::تشویق:

morika
دوشنبه 07 شهریور 1390, 14:58 عصر
نه آقا حمید. منظروم این نیست. ببینید فرمهای که تو برنامه طراحی میشه هرکدومشون 3تا فایل دارن. from1.designer.vb و form1.vb و form1.resx حالا من میخوام یه فرم رو جای دیگه طراحی کنم بعد این 3تا فایل رو کپی کنم تو مسیر برنامه جاری بعد با کد نویسی این فرم رو توی برنامه درحال اجرا باز کنم. این فرم جزو فرم های خود برنامه نیست و جای دیگه نوشته شده.
امیدوارم منظورم رو درست منتقل کرده باشم

h_a_m_i_d
دوشنبه 07 شهریور 1390, 15:16 عصر
اگر فایل رو تبدیل به exe کرده باشی میتونی اونو با دستور shell داخل برنامه بیاری منظورتون اینه
مثلا با دستور زیر برنامه رجیستری رو از درون برنامه خودتون میارین
("shell("c:\windows\regedit.exe
البته میتونی تایین کنی که فرم maximum باز بشه یا نه و...

morika
دوشنبه 07 شهریور 1390, 15:23 عصر
منکه تو سوالم گفتم نمی خوام اینجوری اجراش کنم.


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

alimanam
دوشنبه 07 شهریور 1390, 18:57 عصر
با سلام

من فکر نمیکنم همچین چیزی به این صورت که شما توضیح دادی شدنی باشه .... ولی میشه یه کاری کرد و اون هم اینه که شما بیای همون فرمی که بهش نیاز دارین رو dll کنی و بعد هرکجا که بهش احتیاج داری ( در هر پروژه ایی ) کافیه به صورت Add Reference به پروژه برنامه اضافه اش کنید .

موفق باشید ./

morika
سه شنبه 08 شهریور 1390, 01:34 صبح
خب Add Reference برای قبل از اجرا شدن برنامه هست ما چیکار کنیم که این dll بعداز اجرا شدن برنامه اضافه بشه؟

alimanam
سه شنبه 08 شهریور 1390, 16:56 عصر
خب Add Reference برای قبل از اجرا شدن برنامه هست ما چیکار کنیم که این dll بعداز اجرا شدن برنامه اضافه بشه؟

من که دلیل این کار شما رو نمیدونم که چرا میخواین حتماً بعد از اجرای برنامه اضافه بشه !!! خوب شما براش جوری کد بنویس که این فایل دی ال ال در هنگامی که دوست داری به برنامه اضافه بشه .
واسه این کار میتونی از فضای نام Reflection.Assembly استفاده کنی .

موفق باشید ./

morika
سه شنبه 08 شهریور 1390, 18:50 عصر
خب من از این کد استفاده می کنم

Dim asm As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("C:\APkernel32.dll")

Dim type As Type = asm.GetType("APkernel32.main", True, True)

اما وقتی رو دکمه این کلیک می کنم و کد اجرا میشه تمام فرمهای برنامم ناپدید میشن اما برنامه بسته نمیشه. مثل اینکه فرم ها invisible شده باشن
چیکار باید بکنم؟

morika
چهارشنبه 09 شهریور 1390, 18:08 عصر
کسی چیزی نمی دونه در این باره؟