سلام
میخوام مقدار وارد شده در تکست باکس فرم 2 به یک متغیر در فرم 1 تخصیص داده بشه.
(پاس دادن مقدار یک تکست باکس از یک فرم به یک متغیر در فرمی دیگر)
چطور میشه همچین کاری کرد؟(به زبان سی شارپ C#)
سلام
میخوام مقدار وارد شده در تکست باکس فرم 2 به یک متغیر در فرم 1 تخصیص داده بشه.
(پاس دادن مقدار یک تکست باکس از یک فرم به یک متغیر در فرمی دیگر)
چطور میشه همچین کاری کرد؟(به زبان سی شارپ C#)
سلام.
یه سر به تاپیک زیر بزن می فهمی چطوریه:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر ممکنه بطور خلاصه روش کار رو اینجا بذارید چون اونجا هر کسی یه چیزی گفته.
اگه فقط کارتون همینه که می تونید Textbox هاتونو Public کنید ( یکی از مشخصه هاشو )
بعد
اینجوری
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شما یه Button و یه textbox توی فرم 1 بزار و کد زیر را به رویداد button1_Click اون بده
یه Button هم توی فرم 2 بزار و توی رویداد button1_Click کد زیر را بنویسکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون اونوقت این کدی که نوشتید یعنی چی؟
در ضمن من نمیخوام در فرم 2 یک نمونه ی جدید از فرم 1 ایجاد بشه چون فرم 1 در ضمن اجرا یک نمونه ازش ایجاد میشه و میخوام مقدار وارد شده در تکست باکس فرم 2 با کلیک روی باتنی در فرم 2 به یک متغیر از فرم 1 که درحال اجرا میباشد ارسال بشه. اینی که شما نوشتی میاد یه نمونه از فرم 1 ایجاد میکنه و بعد مقدار رو به اون نمونه پاس میده.
سلام.
تا اونجایی که من میدونم که البته از دوستان گل همین تالار گفتگو یاد گرفتم، شما باید یه فرم بسازید از نوع فرمی که می خواهید ازش اطلاعات بردارید. بعد اطلاعاتش رو بردارید.
این کد باعث میشه برای هر نوع فرمی که الان بازه، فقط در آن واحد یه فرم ساخته بشه و بعد تو دور بعدی حلقه اون فرم پاک میشه و برای فرم بعدی ساخته میشه.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو کد بالا چک می کنیم که اگه فرم ساخته شده ( نمونه فرمی که الان باز هست ) اسمش form1 هست، با کد زیر:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یه شیئ از نوع فرم ازش بسازه و با کد زیر:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو تکست باکس اون فرم بنویسه: علی.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته اگه شما 100 تا فرم باز هم تو برنامه داشته باشید، این کد فقط در آن واحد یه فرم از اونا میسازه و بعد پاک میشه و سراغ فرم بعدی میره. پس رو سرعت برنامه خیلی تاثیر نمی زاره.
اگه سوالی بود بازم در خدمتیم.
همه راه هایی که دوستان در بالا اشاره کردند کم و بیش مشکل رو حل می کنند اما به نظر من راه بهتری هم هست.
بهتره واسه فرم دوم یک 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 هست که می تونی باهاش کار کنی
خیلی کارا میشه کرد، راحترین کار شاید استفاده مقادیر یا فیلدهای Static باشه.
آره با استاتیکها میشه ، (قبلا این کار رو کرده بودم). یک روش دیگری هم بود به نام Cast کردن که بطور لایو متغیر رو از فرم 2 به فرم 1 درحال اجرا پاس میداد اما الان دقیقا یادم نیست چطوری بود؟!
راستی نمیشه فرم 2 طراحی نکرد ؟ حقیقتش مشکلم اینه که چون کنترل ها همشون در یک فرم جا نمیشن مجبور یک دکمه ی Edit بذارم تا کاربر توسط اون به فرم دیگری منتقل بشه و با وارد کردن عدد در تکست باکسهای فرم 2 ، مقدار متغیرهای فرم 1 رو تغییر بده . حالا نمیشه فرم 2 رو طراحی نکرد و کار راحت تری انجام داد ؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)