PDA

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



Collector
چهارشنبه 04 اسفند 1389, 01:55 صبح
سلام
1 - من از این کد برای گرفتن مقدار یک کنترل از یک فرم دیگر استفاده میکنم و لی درست کار نمیکند و مقدار را داخل textBox1 نشان نمیدهد


Modifiers = public


string aaa;
Frm_Search f1 = new Frm_Search();
aaa = f1.textBox3.Text;
textBox1.Text = aaa;

2- من یک فرم اصلاح درست کرده ام و وقتی یک رکورد را در دیتا گرید انتخاب میکنم تا آن را اصلاح کنم وارد یک فرم دیگر میشوم تا برود به رکورد انتخاب شده . این ارور را میدهد.(کد های لازم همه نوشته شده است)


string aaa;
Frm_Search f1 = new Frm_Search();
aaa = f1.textBox3.Text;
textBox1.Text = aaa;

objCurrencyManager.Position = aaa;
ShowPosition();


Cannot implicitly convert type 'string' to 'int'

ucnazard
چهارشنبه 04 اسفند 1389, 23:00 عصر
ميشه يه كم بيشتر توضيح بدين
اطلاعات از كدوم فرم ورداشته ميشه ؟؟
موقع لود ارسال ميشه يا وقتي فرم بازه؟؟
در ضمن با استفاده از int32.parse(aaa)اول اونو به عدد تبديل كن بعدا به position بده

unknown.unforgiven
چهارشنبه 04 اسفند 1389, 23:19 عصر
objCurrencyManager.Position = aaa;

سلام
احتمالاً خطا تو این خط رخ میده، درسته؟ فکر کنم به خاطر اینه که position باید یه عدد باشه نه رشته، در صورتی که aaa یه رشته تعریف شده. اگه بخوای مقدار عددی به position بدی باید رشته رو تبدیل به عدد بکنی بعد به position مقدارش رو بدی

mo.jalilian
چهارشنبه 04 اسفند 1389, 23:47 عصر
خوب در مورد اول، شما نمیتونید به این صورت به اون textbox دسترسی داشته باشید، چون دارید new میکنید و همیشه خالی هست، اما اگر فرمتون باز هست ، میتونید توسط اون آبجکتی که قبل از فرم ساختید به textbox مورد نظرتون برسید

shadi khanum
چهارشنبه 04 اسفند 1389, 23:56 عصر
واسه سوال اولی که گفتی مقدار رو نشون نمیده، شما اگه مثلا دو تا فرم داری به اسم فرم1 و فرم2
که روی فرم1 یه textbox1 داری و رو فرم2 یه Textbox2 و میخوای وفتی از فرم1، فرم2 رو نمایش میدی مقدار textbox1 به Textbox2 انتقال پیدا کنه باید واسه فرم2 یه property بنویسی و موقعی که از فرم1، فرم2 رو صدا میزنی و show میکنی، به property مrدار textbox1.text رو بدی و تو لود فرم2 Textbox2.text رو مساوی اون property بذاری.

ucnazard
پنج شنبه 05 اسفند 1389, 10:26 صبح
بجای new کردن فرمتون اگر اون فرم بلا باز هست از روش زیر استفاده کنید.



frm_search frm;
foreach (Form f in Application.OpenForms)
{
if (f.Name == frm.Name)
{

frm=(frm_saerch) f

S30S60
پنج شنبه 05 اسفند 1389, 19:46 عصر
من که برای ارتباط اینجور از کنترل ها استفاده می کنم
فرض کنید یه تکست باکس داخل فرم1 و یه تکست باکس داخل فرم 2 داریم یک دکمه داخل فرم 2 ایجاد می کنیم و خاصیت DialogResult اون رو به OK تغیر میدیم و در داخل رویداد کلیک یک دکمه در فرم یک هم می نویسیم



Form2 frm2 = new Form2();
if (frm2.ShowDialog() == DialogResult.OK)
{
textBox1.Text = frm2.textBox1.Text;
}