问题描述:
这里有两个窗体Form1和Form2,在Form1中有两个linkbutton控件(linkbutton1和linkbutton2),在Form2中有一个textbox控件。。此时两个窗体都是打开的,现在我点击Form1中的linkbutton1,则在Form2中的textbox控件中显示“从Linkbutton1点击”;同样,点击linkbutton2,则在Form2中的textbox控件中显示“从Linkbutton2点击”。。
有点类似在千千静听中的主窗体和歌曲列表两个窗体。。在歌曲列表中选择歌曲,在主窗体中就能接受传过来的值。。我在网上搜了一下,有人说用委托可以实现。。希望能给出比较详细的实现代码,谢谢!

解决方案 »

  1.   

    在Form1中添加一个Form2的引用,在Form2中添加一个Form1的引用,
    然后添加相应的事件即可的。
    不太需要用到什么委托。
      

  2.   

    参考一下,应该有帮助的
    http://blog.csdn.net/yistudio/archive/2005/03/08/314641.aspx
      

  3.   

    Windows窗体间的数据交互,楼主可以参考一下这里,
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx
      

  4.   

    在每个窗体类里面申明一个方法
    void F()//这是Form1里面的方法
    {
       textBox1.Text="从Linkbutton2点击";
    }void F()//这是Form2里面的方法
    {
       textBox1.Text="从Linkbutton1点击";
    }在点击按纽的时候申明一个窗体类 调用方法就可以了
      

  5.   

    Don't you have any train of thought? The following code is my example. My development environment is Visual Studio 2008, so if you have any code feel confusing, you could convert it to meet your development environment.
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();        SecondForm form = new SecondForm();
            form.MyEvent += (sender, e) => { this.textBox.Text = e.Source; };
            form.Show();
        }
    }public partial class SecondForm : Form
    {
        public SecondForm()
        {
            InitializeComponent();
        }    public event EventHandler<MyEventArgs> MyEvent;    private void OnButtonClick(object sender, EventArgs e)
        {
            if (this.MyEvent != null)
            {
                if (sender == this.button1)
                    this.MyEvent(this, new MyEventArgs("Button 1"));
                else if (sender == this.button2)
                    this.MyEvent(this, new MyEventArgs("Button 2"));
            }
        }
    }public class MyEventArgs : EventArgs
    {
        public MyEventArgs(string source)
        {
            this.Source = source;
        }    public string Source { get; private set; }
    }
      

  6.   

     下面的代码就能解决你的问题!
    public partial class Form1 : Form
        {
            string kk;
            Form2 form = new Form2();
            public Form1()
            {
                InitializeComponent();
                            form.Show();
            }
            private void button2_Click(object sender, EventArgs e)
            {
                kk = "sdfsdfs";
                
                form.mmm(kk);
                form.Show();
            }        private void button3_Click(object sender, EventArgs e)
            {
                kk = "xxxxxxxxxx";
                form.mmm(kk);
                form.Show();
            }       
        }
     public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }     public void mmm(string kk)
         {
             label1.Text = kk;
         }    }
      

  7.   

    类似的问题好像是第三次回答了,要吗Form1与Form2彼此认识(通过保留彼此实例引用),当然这是一种较丑陋的设计,还可以在两个之间建立一个桥梁,有一个专门处理各实例发送回来的事件信息的类型实例。