PDA

View Full Version : خواندن متغیرهای دو فرم در یک پروژه



maikola
یک شنبه 26 تیر 1390, 16:08 عصر
سلام من در فرم اصلی برنامه چند متغیر دارم به صورت زیر

public Int32 k0,k1,k2,k3,k4,ktimer;

در فرم اصلی برنامه این متغیرها مقداردهی می شوند مثلا: k0=3; و می خواهم در فرم دوم برنامه از آنها استفاده کنم ولی این متغیرها را با مقدار 0 برمی گرداند؟؟!!

Legend M.A.R
یک شنبه 26 تیر 1390, 16:39 عصر
خوب حداقل میگفتی چطوری داری استفاده می کنی مثلا توی فرم دوم مجدد از فرم اول یکی می سازی در این صورت بهتره که متغییر هاتو به static تغییر بدی و اگر جور دیگه ای استفاده می کنی بگو تا راهنماییت کنیم
public partial class Form1 : Form
{
public static Int32 k0, k1, k2, k3, k4, ktimer;

این مثالی که زدم رو استفاده کن فقط موقع استفاده باید به صورت
Form1.k0 = 10;
Form1 frm1 = new Form1();
// در این حالت نمی تونی از متغییر استفاده کنی
frm1.k0=????

fan2005
یک شنبه 26 تیر 1390, 17:10 عصر
استفاده از property با متد های set , get یکی از راه های پاس کردن اطلاعات بین دو فرم هست. را ه های دیگه عبارت است از


constructor
objects
properties
delegates

در مورد سوال شما میتونی از constructor استفاده کنی .
در فرم اصلی موقعی که دارید از فرم دوم نمونه میسازید

Form2 f2 = new Form2(k0)

و در سازنده فرم دوم


public Form2(int myfield)
{//use myfield
}




استفاده از property

فرم دوم



private int _k0;
Public int K0
{
get { return _k0; }
set { _k0= value; }

}



در فرم اصلی موقع نمونه سازی


Form2 f2 = new Form2()
f2.K0=this.k0;



this.k0 فیلدی هست که در فرم اصلی داری

Salar Ashgi
یک شنبه 26 تیر 1390, 17:45 عصر
جهت چنین کاربردهایی و شاید خیلی موارد ، استفاده از متغیرهای استاتیک ، ساده ترین و بهترین گزینه است !

اون هم بهتره یک کلاس ایجاد کنید که یه تعداد متغیرهای استاتیک (همون متغیرهایی که قراره بین فرم ها پاس داده بشن)
داره ، حالا ممکنه تو یه فرمی مثلا Form1 این داده ها Set بشن و تو یه فرم دیگه Get !!! خیلی ساده ...

موفق باشید ./

maikola
یک شنبه 26 تیر 1390, 18:17 عصر
از روش زیر استفاده کرد جواب داد

72552

72551

Legend M.A.R
یک شنبه 26 تیر 1390, 19:23 عصر
از روش زیر استفاده کرد جواب داد

72552

72551

الان اینکه گذاشتی یعنی چی؟ چی جواب داد؟؟؟؟؟

maikola
یک شنبه 26 تیر 1390, 23:42 عصر
من می خواستم تمام متغیرهای public رو بتونم تو هر دو تا فرم استفاده کنم حالا از روش بالا (دو تا عکس ضمیمه) که استفاده کردم توی هر دو تا فرم به همه متغیر های public دسترسی دارم و اگه تو هر کدوم از فرمها متغیر ها رو تغییر بدم تو اون یکی فرم هم تغییرات اعمال میشه
من این کد رو از همین سایت گرفتم
http://barnamenevis.org/showthread.php?253543-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%AF%D9%88-%D9%81%D8%B1%D9%85-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE