在Form1中有一个哈希表 tbmsg;( 表中放的数据是tbmsg(int id,string msg))
在Form2中有一个textbox。
我想在当Form1中的tbmsg中的数据增加后 自动显示在Form2中的textbox中
哪个大哥大姐 给个完整的DEMO啊谢谢
小弟初学C# 初来CSDN 第一次发帖

解决方案 »

  1.   

    只能用 Delegate 注册事件  !你 百度 或GOOGLE !
      

  2.   

    使用委托和事件。
    根据想象写的,不一定能调通,思路应该是这样的。定义事件类CEvent。cs
    public static delegate void showTxtDelegate(string msg);
    public static event showTxtDelegate showTxtEvent;public static void invokeShowTxt(string msg)
    {
    showTxtEvent(msg);
    }
    下面是Form2中的使用:
    注册事件CEvent。showTxtEvent += new showTxtDelegate (myShowTxt);注册事件执行的函数
    private void myShowTxt(string msg)
    {
     textBox.text = msg;
    }下面是form1中的使用:
    当tbmsg中的数据增加后调用函数CEvent。invokeShowTxt(string msg);
      

  3.   

    通过构造函数
    通过静态变量
    通过窗体的公有属性值
    通过事件
    public string Form2Value
    {
        get
        {
            return this.textBox1.Text;
        }
        set
        {
            this.textBox1.Text = value;
        }
    }
    public event EventHandler accept;
    private void button1_Click ( object sender , EventArgs e )
    {
        if ( accept != null )
        {
            accept ( this , EventArgs.Empty );  
        }
    }
    Form1中
    Form2 f2 = new Form2 ( );
    f2.accept += new EventHandler ( f2_accept );
    f2.Show ( );
    void f2_accept ( object sender , EventArgs e )
    {
        Form2 f2 = (Form2) sender;
        this.textBox1.Text = f2.Form2Value; 
    }
      

  4.   

    参考愚翁专栏CSDN第一期总结之一:Form问题
    Form问题是最基本的问题,因为编写WinApp程序首先接触的对象就是它,因此在论坛中对它而产生的问题也最常见。
    与Form相关的常见问题大致分为如下的四类问题。第一类问题:如何控制窗体的显示顺序;第二类问题:窗体之间的对象如何相互引用或操作;第三类问题:如何处理窗体唯一性问题;最后一个问题:如何合理的关闭窗体或程序。
      

  5.   

    to peterb
    你的方法在学习中,如果可行的话 我会给分的
      

  6.   


    ///窗体一
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {            Form2 f2 = new Form2();            //把form2的setText事件交给form1的GetText(string text)方法处理。 
                f2.Test += new Form2.SetText(GetText);
                f2.ShowDialog();
            }
            public void GetText(string text)
            {
                string value = text;
                this.button1.Text = value;
            } }/**************************************************************///窗体二
    public partial class Form2 : Form
        {
            //第一种方法就是代理。 
            public delegate void SetText(string text);
            public event SetText Test;        public Form2()
            {
                InitializeComponent();
            }
            private void Form2_Load(object sender, EventArgs e)
            {        }
            private void button1_Click(object sender, EventArgs e)
            {
                //  第一种方法 
                if (Test != null)
                {
                    Test(textBox1.Text);
                }
                this.Close();        }
        }