روش مورد استفاده من برای انجام چنین کاری :
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);
}