各位大虾:小弟我想把一个Form1的一个textbox1.text(string)值传递给另一个Form2的textbox2.text.我想利用代理(delegate,event)来实现,可是看了书还是不知道如何实现,是否有人能够指点下不?

解决方案 »

  1.   

    关于event就是用delegate(委托)来实现的。
    1.你可以在Form1中定义一个Form2类型的变量frm2
    2.打开这两个窗体。
    3.手动写代码 textbox1.onchange += new .......(自动生成的函数)
    4.在这个函数里面frm2.textbox2.text = textbox1.text;
      

  2.   

    我是看了一个资料弄明白的。http://www.360doc.com/content/08/0904/17/74246_1610150.shtml
    希望对你有用。
      

  3.   

    VS2010:'Form1中:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim F2 As New Form2
            F2.Show()
            F2.anonymousDelegate = Function(x)
                                       TextBox1.Text = x : Return TextBox2.Text
                                   End Function
        End Sub
    'Form2中,定义一个:
    Public Class Form2
        Public Property anonymousDelegate As [Delegate]
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            '由匿名委托发送和接收的消息
            TextBox1.Text = anonymousDelegate.DynamicInvoke("Hello!" & "(sent by anonymousDelegate)")
        End Sub
    End Class
      

  4.   

    先看一些简单的例子,自己动手在写写:
    http://www.jb51.net/article/17131.htm
      

  5.   

    Delegates-and-Events-in-CSharp   
    一份由浅入深介绍C#委托与事件具体应用文档; 很不错的哦,推荐可以看看
      

  6.   

    public partial class Form1 : Form 
        { 
            private void button1_Click(object sender, EventArgs e) 
            { 
                Form2 frm2 = new Form2(); 
                frm2.Show(this); 
            } 
        }     public partial class Form2 : Form 
        { 
            private void button1_Click(object sender, EventArgs e) 
            { 
                Form1 frm1 = (Form1)this.Owner; 
                ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text; 
                this.Close(); 
            } 
        } 
    Form2 f2 = new Form2();
    f2.Show();
    f2.WriteValue += new Form2.writeLabel(Test);
    private void Test(string s)  
      {
        label1.Text = "";
      }  public partial class Form2 : Form
      {
      public delegate void writeValue(string s);
      public writeLabel WriteValue;
      private void button1_Click(object sender, EventArgs e)
      {
       this.WriteValue("");
      }
      }
      

  7.   

    http://blog.csdn.net/shellwin/archive/2010/06/04/5647417.aspx