PDA

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



raziyehbazargan
یک شنبه 28 تیر 1388, 07:42 صبح
سلام...
سوالم اینه که چه طوری می تونم در فرم 1 به کنترل های فرم2 دسترسی داشته باشم؟

به عنوان مثال در فرم1 با کلیک روی دکمه جستجو فرم2 باز شود در این فرم جستجو کرده و با بستن فرم2 رکورد پیداشده در تکست باکس های فرم1 لود شود؟؟
مرسی

hozouri
یک شنبه 28 تیر 1388, 07:51 صبح
دوست عزیز باید modifier شیئ هایی رو که می خواهید Public کنید.

mohkami
یک شنبه 28 تیر 1388, 09:18 صبح
سلام،
آقای حضوری درست میفرمایند و من کد رو میذارم:

کد زیر برای Form1 که دارای یک TextBox و یک Button هست:


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog();
textBox1.Text = f2.nam;
}
}

کد زیر برای Form2 که من برای مثال یک string گذاشتم شما هر چیزی که اون قراره برگردونه:


public partial class Form2 : Form
{
public string nam;
public Form2()
{
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{
nam = "MOH";
}
}

Soroush.Sarabi
یک شنبه 28 تیر 1388, 09:28 صبح
وست عزیز شما برای این کار لازمه که یک Event در فرم 2 طراحی کنید البته Delegate باید تو فضای نامی

کل باشه سپس تو فرم 1 اونو handle کنی و مقادیر لازم رو از طریق Args انتقال بدی.

(http://soroush-sarabi.blogspot.com)

raziyehbazargan
یک شنبه 28 تیر 1388, 09:31 صبح
مرسی از جوابتون...
دو سوال دیگه هم دارم اگه لطف کنید جواب بدید ممنون میشم...

به عنوان مثال اگه یه فرم داشته باشم و با کلیک روی یه button فرم 2 باز بشه که دارای یه دیتاگرید هست ..می خوام با دابل کلیک روی هر یک از سطرهای دیتاگرید فرم2 بسته بشه و اطلاعات اون سطر از دیتاگرید در تکست باکس های فرم1 لود بشه...



سوال بعدیم اینه که اگه در فرم یک چند تکست باکس ویک دیتاگرید داشته باشم که اطلاعات جدول1 رو نشون میده و با نوشتن در تکست باکس ها اطلاعات دیتاگرید فیلتر بشه...

مرسی

raziyehbazargan
یک شنبه 28 تیر 1388, 09:33 صبح
وست عزیز شما برای این کار لازمه که یک Event در فرم 2 طراحی کنید البته Delegate باید تو فضای نامی

کل باشه سپس تو فرم 1 اونو handle کنی و مقادیر لازم رو از طریق Args انتقال بدی.





ممنون میشم اگه با نمونه کد برام توضیح بدید.

Soroush.Sarabi
یک شنبه 28 تیر 1388, 09:53 صبح
این کد فرم اول :



namespace Sample01
{
publicpartialclassFirstForm : Form
{
public FirstForm()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
SecondForm form = newSecondForm();
form.TextControlEvent += newTextControl(form_TextControlEvent);
form.Show();
}
void form_TextControlEvent(string value)
{
this.label1.Text = value;
}
}
}
اینم کد فرم دوم :



publicdelegatevoidTextControl(string value);
publicpartialclassSecondForm : Form
{
publiceventTextControl TextControlEvent;
protectedvoid OnTextControlEvent(string value)
{
if (TextControlEvent != null)
{
TextControlEvent(value);
}
}
public SecondForm()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
OnTextControlEvent(this.textBox1.Text);
this.Close();
}
}