PDA

View Full Version : سوال: ارتباط دو پروژه با زبان های مختلف!



reza_devel0per
چهارشنبه 29 خرداد 1392, 23:34 عصر
سلام، من توی یک solution یک پروژه ی VB و یک پروژه C#‎ دارم ، آیا راهی هست که از درون فرم پروژه سی شارپ ، به آبجکت های فرمی از پروژه وی بی دسترسی پیدا کنم؟

saied_hacker
پنج شنبه 30 خرداد 1392, 08:51 صبح
چون 2 تا پروژه جدا از هم هستن نمی تونی مستقیم به هم ارتباطشون بدی ...

1- استفاده از یه فایل واسط که اطلاعات رو توسط یکی توش بنویسی و توی دیگری بخونیو به این روش اطلاعات رو جابه جا کنی ....
2- استفاده از سرویس ، یک سرویس بنویسی و به کمک اون 2 تا برنامه رو به هم ارتباط بدی ...

نکته : اگر پروژه دوم توسط پروژه پروژه اول اجرا میکند یا برعکس میتونید متغیر هایی که لازم هست اشتراکی باشه public تعریف کنید و بهشون دسترسی داشته باشید.
( ابتدا قبل از انجام عمل زیر باید از قسمت add reference ، اون یکی پروژه رو به پروژتون رو اضافه کنید )
مثال:

درپروژه vb:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim vr As New Cproject.Form1

vr.Show()
vr.settext("call function!")

End Sub

در پروژه C#:

public void settext(string text) // function is in form1
{
textBox1.Text = text;
}

برعکس عمل فوق هم به راحتی قابل انجام هست...

intel_amd
پنج شنبه 30 خرداد 1392, 09:04 صبح
پروژرو در قسمت add reference گفتین اضافه کنه منظورتون فایل exe هست؟
یعنی بعد از اضافه کردن پروژه B به پروژه A میشه به متغییر های public پروژه B دسترسی پیدا کرد؟ به متدهاشم میشه؟ به چیز دیگه ایش هم میشه؟

saied_hacker
پنج شنبه 30 خرداد 1392, 09:10 صبح
راه حل سومی که من گفتم ، وقتی شما روی پروژه add reference رو میزنی در قسمت Solution -> Project اسم پزوژه های دیگه میاد از اننجا انتخاب میکنید ....

نکته : این راحل فقط زمانی کار می کنه که پروژه دوم توسط پروژه اول ران بشه ( از داخل سورس مثل مثال بالا ) ... ، و در صورتی که شما 2 تا فایل exe رو دستی (کلیک رو فایلش) اجرا کنید قابل استفاده نیست و باید از راه 1 و 2 استفاده کنید.

reza_devel0per
جمعه 31 خرداد 1392, 11:25 صبح
میتونید متغیر هایی که لازم هست اشتراکی باشه public تعریف کنید و بهشون دسترسی داشته باشید.
( ابتدا قبل از انجام عمل زیر باید از قسمت add reference ، اون یکی پروژه رو به پروژتون رو اضافه کنید )

مرسی، تونستم فرم رو نشون بدم اما به متغیر های Public نمیتونم دسترسی داشته باشم!

saied_hacker
جمعه 31 خرداد 1392, 11:37 صبح
شما وقتی از فرم نمونه سازی میکنید میتونید خیلی راحت به متغیرهای public هم دسترسی داشته باشید.

mycshapproject.Form1 f = new mycshapproject.Form1;
f.myfunction()
f.show()


//function in form1
public void myfunction()
{
//do
}

حالا اگه میخای از فرم دومی که نشون ( از پروژه دیگه ) دادی به برنامه اصلی دسترسی داشته باشی اون یه مسئله دیگس...

matrix-program
جمعه 31 خرداد 1392, 13:51 عصر
کار راحت تر این است که در ویبی در رجیستری با savesetting دستور خودت رو سیو کنی و در سی شارپ در رجیستری منتظر دستور باشه

davidrobert
جمعه 31 خرداد 1392, 15:13 عصر
برادر شما میتونید از این پروژه برای تغییر زبان استفاده کنی و اون رو ذخیره کنی موقعی که وارد میشی فارسی رو نشان بده یا انگلیسی رو.http://uplod.ir/b44n032ta9gm/Finglishtopersian.rar.htm

موفق باشید.