PDA

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



sempay_ninjutsu
چهارشنبه 24 شهریور 1389, 12:24 عصر
سلام
من 2 تا فرم دارم که تو فرم اولم یه تکس باکس قرار داره من میخوام وقتی فرم 2 باز شد بتونم از متن وارد شده تو اون تکس باکس استفاده کنم.یه نمونه کد بذارین ممنون میشم!!!!!!!!!!!!

fjm11100
چهارشنبه 24 شهریور 1389, 12:40 عصر
بخدا خود من مشابه این سوال را بارها پاسخ دادم:گریه:
.Controls["TextBox1"]).Text;"]
--------------------
ببخشید نصفه اومد
string str = ((TextBox)Application.OpenForms["Form2"].Controls["TextBox1"]).Text;

amir11205
چهارشنبه 24 شهریور 1389, 12:51 عصر
سلام.به نظر من بهتره یک کلاس ایجاد کنی و بعد تو اون یک متغیر تعریف کنی و بعد از اون مقدار متغیر رو برابر مقدار text box قرار بده و تو فرم دوم از مقدار متغیر استفاده کن


class common
{
static public string str;
}

مقدلاردهی str با مقدار textbox:

common.str=textbox1.Text;
استفاده از str در فرم دوم(مثلا مقداردهی یک textbox در فرم دوم) :

textbox1.Text=common.str;

sempay_ninjutsu
چهارشنبه 24 شهریور 1389, 13:24 عصر
اگه بشه یه قانونی بذارن که این تاپیک ها سرو سامان بگیره بهتر میشه و دیگه این اشتباه ها پیش نمییاد من دوست ندارم تاپیک تکراری باشه ولی جست و جو هم کردم اما پیدا نکردم !!!دیگه نمیشه کل بخش سی شارپ رو بگردم تا بخوام یه کد یه خطی پیدا کنم!!!!
باز هم از کمکتون ممنون

Encomp_Amini
چهارشنبه 24 شهریور 1389, 13:31 عصر
سلام
بهتره که در فرم دوم در تابع initial فرم تغییرات زیر را بدهید:


string str;

public Form2(string strTextBox1)
{
InitializeComponent();
str= strTextBox1;
}

و در زمان فراخوانی فرم دوم در فرم اول دستور زیر را بنویسید:


Form2 objForm2= new Form2(TextBox1.Text);
objForm2.ShowDialog();

mmd2009
چهارشنبه 24 شهریور 1389, 13:34 عصر
با سلام.

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

پراپریتی رو جستجو بکنید تو این سایت به نتایج مطلوب تری خواهید رسید. اگر هم پیدا نکردی بگو برات نمونه کد میذارم

موفق باشی

fjm11100
چهارشنبه 24 شهریور 1389, 13:49 عصر
آره راه اصولی پراپرتیه اما بعضی وقتها کار راه نمیندازه مثلا جایی که تغییرات داینامیک باشه مثل اینکه تکست باکس بعد از نمایش فرم تغییر کنه

اَرژنگ
چهارشنبه 24 شهریور 1389, 16:11 عصر
و با اینکه بارها پرسیده و جواب داده شده هنوز اینگونه جوابهایی را ناظریم. لااقل یک نفر استفاده از پروپرتی را گفت، و تازگیها هم قابلیت اینکه به شکل داینامیک بشه با روادید خبردار شد را هم حداقل یکبار من خودم فرستادم، ولی چرا هنوز این جور جوابهایی را میبینیم؟


بخدا خود من مشابه این سوال را بارها پاسخ دادم:گریه:
.Controls["TextBox1"]).Text;"]
--------------------
ببخشید نصفه اومد
string str = ((TextBox)Application.OpenForms["Form2"].Controls["TextBox1"]).Text;




سلام.به نظر من بهتره یک کلاس ایجاد کنی و بعد تو اون یک متغیر تعریف کنی و بعد از اون مقدار متغیر رو برابر مقدار text box قرار بده و تو فرم دوم از مقدار متغیر استفاده کن


class common
{
static public string str;
}

مقدلاردهی str با مقدار textbox:

common.str=textbox1.Text;
استفاده از str در فرم دوم(مثلا مقداردهی یک textbox در فرم دوم) :

textbox1.Text=common.str;

sempay_ninjutsu
چهارشنبه 24 شهریور 1389, 17:24 عصر
تکار بر محترم mmd.. اگه لطف کنی با پراپرتی یه کد بذاری ممنون میشم