使用.net事件机制实现窗体间的数据更新_蓝域网络工作室_百度空间

在编写winform项目中经常遇到模式窗口来编辑数据然后主窗体进行数据更新,以前都是通过传递窗体实例来更新数据,后来发现这种方法挺麻烦的,如果多个窗体调用编辑窗口需要写多个结构函数。后来发现可以使用事件机制来更新数据,于是写了个小例子。

在program类中添加一个静态字段,来做为listview的数据源
private static List<string> _aalist = new List<string>();
        public static List<string> aaList
        {
            get { return _aalist; }
            set { _aalist = value; }
        }

场景:新建一个主窗体Form2,在主窗体上放一个listview控件,只添加一个列即可,然后加一个button按钮。在窗体类中定义一个事件函数
public void Form2_onlistchange(object sender, EventArgs e)
        {
            getdata();
        }
getdata为定义的一个绑定数据的函数
        public void getdata()
        {
            listView1.Items.Clear();
            ListViewItem item;
            foreach (string a in Program.aaList)
            {
                item = new ListViewItem();
                item.Text = a;
                listView1.Items.Add(item);
            }
        }
然后定义button的事件
private void button1_Click(object sender, EventArgs e)
        {
            Form3 f3 = new Form3();
            f3.dowork += new EventHandler(Form2_onlistchange);
            f3.ShowDialog();
        }

然后新建一个子窗口Form3,在界面中放一个textbox和一个button
在窗体中定义一个事件的方法,
public event EventHandler dowork;

给这个button定义事件
        private void button1_Click(object sender, EventArgs e)
        {
            string aa = textBox1.Text;
            Program.aaList.Add(aa);

            if (dowork != null)
            {
                dowork(sender, e);
            }
        }

做好的效果图:

这样做的好处就是不需要在子窗体中关系主窗体的问题,只需要在子窗体中定义好子窗体的事件即可。



郑重声明:资讯 【使用.net事件机制实现窗体间的数据更新_蓝域网络工作室_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——