PDA

نسخه کامل مشاهده نسخه کامل : پاس دادن مقدار وارد شده در تکست باکس فرم 2 به فرم 1 در سی شارپ



ghahremanimehdi
25-11-2010, 16:34
سلام
میخوام مقدار وارد شده در تکست باکس فرم 2 به یک متغیر در فرم 1 تخصیص داده بشه.
(پاس دادن مقدار یک تکست باکس از یک فرم به یک متغیر در فرمی دیگر)
چطور میشه همچین کاری کرد؟(به زبان سی شارپ C#)

aliaghaaaaa
25-11-2010, 16:42
سلام.
یه سر به تاپیک زیر بزن می فهمی چطوریه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ghahremanimehdi
25-11-2010, 20:06
اگر ممکنه بطور خلاصه روش کار رو اینجا بذارید چون اونجا هر کسی یه چیزی گفته.

L u K e !
25-11-2010, 20:08
اگه فقط کارتون همینه که می تونید Textbox هاتونو Public کنید ( یکی از مشخصه هاشو )
بعد
اینجوری


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

aliaghaaaaa
27-11-2010, 08:40
شما یه Button و یه textbox توی فرم 1 بزار و کد زیر را به رویداد button1_Click اون بده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یه Button هم توی فرم 2 بزار و توی رویداد button1_Click کد زیر را بنویس

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ghahremanimehdi
27-11-2010, 18:19
شما یه Button و یه textbox توی فرم 1 بزار و کد زیر را به رویداد button1_Click اون بده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدیه Button هم توی فرم 2 بزار و توی رویداد button1_Click کد زیر را بنویس

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


ممنون اونوقت این کدی که نوشتید یعنی چی؟
در ضمن من نمیخوام در فرم 2 یک نمونه ی جدید از فرم 1 ایجاد بشه چون فرم 1 در ضمن اجرا یک نمونه ازش ایجاد میشه و میخوام مقدار وارد شده در تکست باکس فرم 2 با کلیک روی باتنی در فرم 2 به یک متغیر از فرم 1 که درحال اجرا میباشد ارسال بشه. اینی که شما نوشتی میاد یه نمونه از فرم 1 ایجاد میکنه و بعد مقدار رو به اون نمونه پاس میده.

aliaghaaaaa
27-11-2010, 20:22
سلام.
تا اونجایی که من میدونم که البته از دوستان گل همین تالار گفتگو یاد گرفتم، شما باید یه فرم بسازید از نوع فرمی که می خواهید ازش اطلاعات بردارید. بعد اطلاعاتش رو بردارید.

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

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو کد بالا چک می کنیم که اگه فرم ساخته شده ( نمونه فرمی که الان باز هست ) اسمش form1 هست، با کد زیر:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یه شیئ از نوع فرم ازش بسازه و با کد زیر:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو تکست باکس اون فرم بنویسه: علی.
البته اگه شما 100 تا فرم باز هم تو برنامه داشته باشید، این کد فقط در آن واحد یه فرم از اونا میسازه و بعد پاک میشه و سراغ فرم بعدی میره. پس رو سرعت برنامه خیلی تاثیر نمی زاره.
اگه سوالی بود بازم در خدمتیم.

anvar.net
27-11-2010, 22:22
همه راه هایی که دوستان در بالا اشاره کردند کم و بیش مشکل رو حل می کنند اما به نظر من راه بهتری هم هست.

بهتره واسه فرم دوم یک Property جدید تعریف کنیم و برای خواندن و ست کردن متغیر مورد نظر از آن استفاده کنیم. فرض کنیم می خواهیم متغیری از نوع رشته ای رو بین فرم ها پاس بدیم. در فرم دوم یک property یا خصوصیت جدید به نام NewProp تعریف می کنیم : قبلش یک متغیر رشته ای برای نگهداریش در ابتدای کلاس اعلان می کنیم

Private myProp as string
Property NewProp () as string
Get
Return myProp
End Get
Set (ByVal Value as string)
myProp=Value
Myvariable=Value
End property


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

form2.NewProp =XXX

حال, هر موقع فرم دوم لود بشه مقدار خاصیت NewProp مساوی با مقدار XXX هست که می تونی باهاش کار کنی

Guts
27-11-2010, 22:55
خیلی کارا میشه کرد، راحترین کار شاید استفاده مقادیر یا فیلدهای Static باشه.

ghahremanimehdi
28-11-2010, 19:52
خیلی کارا میشه کرد، راحترین کار شاید استفاده مقادیر یا فیلدهای Static باشه.

آره با استاتیکها میشه ، (قبلا این کار رو کرده بودم). یک روش دیگری هم بود به نام Cast کردن که بطور لایو متغیر رو از فرم 2 به فرم 1 درحال اجرا پاس میداد اما الان دقیقا یادم نیست چطوری بود؟!
راستی نمیشه فرم 2 طراحی نکرد ؟ حقیقتش مشکلم اینه که چون کنترل ها همشون در یک فرم جا نمیشن مجبور یک دکمه ی Edit بذارم تا کاربر توسط اون به فرم دیگری منتقل بشه و با وارد کردن عدد در تکست باکسهای فرم 2 ، مقدار متغیرهای فرم 1 رو تغییر بده . حالا نمیشه فرم 2 رو طراحی نکرد و کار راحت تری انجام داد ؟

Alireza_1363
29-12-2010, 18:50
تو کلاس فرمی که می خوایید اطلاعات رو در TextBox اون بریزید یه Property به صورت Public تعریف کنید و توقسمت Set اون مقدار value رو در textbox بریزید
البته این کار رو می تونید از طریق تابع سازنده فرم هم انجام بدید به این صورت که یه پارامتر String برای سازنده تعریف کنید و تو ایجاد کلاس مقداری رو که می خواید به اون پاس بدید
من روش اول رو توصیه می کنم چون قابلیت استفاده از اون در هرجای برنامه حتی بعد از ایجاد شی کلاس برات امکان پذیر هست

MosaferJade
06-04-2011, 17:07
میشه فرم 2 طراحی نکرد ؟ حقیقتش مشکلم اینه که چون کنترل ها همشون در یک فرم جا نمیشن مجبور یک دکمه ی Edit بذارم تا کاربر توسط اون به فرم دیگری منتقل بشه و با وارد کردن عدد در تکست باکسهای فرم 2 ، مقدار متغیرهای فرم 1 رو تغییر بده . حالا نمیشه فرم 2 رو طراحی نکرد و کار راحت تری انجام داد ؟
آره میشه
دوتا کنترل panel به فرم اضافه کن کنترل های صفحه اول را روی یکی و کنترل های صفحه دوم را روی دیگری قرار بده ( البته اونی که مال صفحه دوم است در قسمت مشخصات مشخصه visible را برابر false قرار بدید .
حالا با زدن button به اسم edit به جای اینکه یه فرم جدید را باز کنی این کد را بنویس ( در کد زیر p1 صفحه اصلی و p2 صفحه ای که بعد از زدن button ی با نام edit می باشد )
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سلام
دوستان یک سوال دارم که مدتی هیچ کس نتونسته جواب بده!
من یک فرم دارم و یک کلاس هم ساختم
حالا کلیه اشیاء روی فرم(ادیت باکس و ...) رو میخوام فقط یک بار موقع تعریف کلاس پاس بدم و مجبور نشم هر موقع که متدی رو تعریف میکنم کله اشیاء رو پاس بدم؟؟؟
ممنونم تایپیکی نبوده که این سوال را مطرح نکرده باشین

MosaferJade
07-04-2011, 00:19
بیا روی این تایپیک

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mshiraz.2009
06-06-2011, 19:51
سلام دوستان.
من دوصفحه خودندم با نتونستم متن يه text رو به فرم ديگه اي انتقال بدم.
كسي هست واضح تر بگه؟

Macdiano
07-06-2011, 15:39
سلام دوستان.
من دوصفحه خودندم با نتونستم متن يه text رو به فرم ديگه اي انتقال بدم.
كسي هست واضح تر بگه؟

اگر ممکن هست واضح تر سوالتون رو مطرح کنید.

سونامی
07-06-2011, 16:28
توی فرم 2 باید بزنی form1.textbox1.text=form2.textbox1.text :دی به همین راحتی

zshamsi
20-06-2014, 09:44
منم همین سوالو دارم اما نمی دونم شما چه می گید البته من دوتا فرم دارم راه حل کاملی رو بنویسید با تشکر

zshamsi
20-06-2014, 09:49
کجای فرم 2 اینو بنویسیم

rovina0111
16-11-2014, 14:17
سلام.میشه توئ نوشتن این برنامه به من کمک کنید!!؟؟؟
یه برنامه کرنومتر که دو فرم داره.توی فرم اول کرنومتر فعال بشه وکارش رو شروع کنه ووقتی روی دکمه stop کیلیک کرد فرم جدیدی باز بشه که گزینه های resiom برای ادامه شمارش و abort برای exit و reset برای شروع شمارش از صفر بعد از زدن دکمه start در فرم اول.این 3 گزینه radio button هستند وباید بعد از زدن دکمه go on مقدارشون به فرم اول برگرده وتغییرات انجام بشه.