现有两个窗体Form1和Form2.执行程序,先出现Form1窗体,点击Button,响应事件,出现Form2窗体.(Form1未关闭).如何在Form2中每触发一个事件,都让Form1刷新一次?就象photoshop中的图象效果预览一样?用静态函数的话需要所有的变量均为静态.能给个实例吗?小弟先谢了.

解决方案 »

  1.   

    把form1做为参数传递过去吧.
    在form2加一个带参数的构造函数:在form2窗口操作 f1 就可以.private Form1 f1 = null;public From2(Form1 form1)
    {
      ......
      this.f1 = form1;
    }调用时:Form2 f2 = new Form2(this);
    f2.Show();
      

  2.   

    采用楼上的那位说的
    private Form1 f1 = null;public From2(Form1 form1)
    {
      ......
      this.f1 = form1;
    }
    然后每次事件都加入 
    f1.Refresh();即可刷新
      

  3.   

    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                new Form2().Show();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                Form2.Form1RefreshEvent += new EventHandler(Form2_Form1RefreshEvent);
            }        void Form2_Form1RefreshEvent(object sender, EventArgs e)
            {
                this.Refresh();
            }
        }
      

  4.   

    public partial class Form2 : Form
        {
            static public event EventHandler Form1RefreshEvent;        public Form2()
            {
                InitializeComponent();
            }        static int i = 0;        private void button1_Click(object sender, EventArgs e)
            {
                this.button1.Text = Convert.ToString(i++);
            }        private void Form2_Load(object sender, EventArgs e)
            {
                //哪些事件需要使Form1 刷新
                //在这里绑定
                this.button1.Click += Form2.Form1RefreshEvent;
            }
        }
      

  5.   

    在form1里面定义一个窗体类型pForm,然后把Form2的handle传给这个pForm