نقل قول نوشته شده توسط wolf_majid مشاهده تاپیک
روش مورد استفاده من برای انجام چنین کاری :

1- تعریف کلاس زیر :

 public class MoveObjectEventArgs : EventArgs
{
/// <summary>
///
/// </summary>
/// <param name="obj">موضوع ارسالی</param>
public MoveObjectEventArgs(object obj)
{
_object = obj;
}

/// <summary>
/// شی مورد انتقال
/// </summary>
private object _object;

/// <summary>
/// شی ذخیره شده را بر می گرداند
/// </summary>
public object GetObject
{
get { return _object; }
}
}


2- تعریف یک رخداد و صدا زدن آن در فرم فرستنده :

public delegate void _SendObject(object sender, MoveObjectEventArgs e);
public event _SendObject SendObject;

 private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Name = "frmTest";
if (SendObject != null)
SendObject(this, new MoveObjectEventArgs(":D"));
frm2.Show();


3- انجام تغییرات در فرم گیرنده :

 public Form2()
{
InitializeComponent();
(Application.OpenForms["Form1"] as Form1).SendObject += getObject;
}

private void getObject(object sender, MoveObjectEventArgs e)
{
comboBox1.Text = (e.GetObject as string);
}
این روش شما هنوز مشکل این که اگر فرم هدف در حال حاضر باز باشه رو حل نکرده. در ضمن این روش به نظر شما چه مزیتی نسبت به ارسال داده از طریق سازنده داره که در پست های قبلی ارسال شده بود؟