WinForms自动保存到数据库(与保存按钮对比)

时间:2016-11-18 20:30:44

标签: c# winforms entity-framework

我正在使用Entity Framework编写WinForms(C#)。应用

目前,我在我的表单上有一个很棒的保存按钮,就像你希望并期望它一样。

我被要求更改应用程序以在用户更改每个字段时自动保存。

我知道我可以通过向每个控件中的Value_Changed事件添加代码来实现此目的。但是有更简单的方法吗?此表单上有大量控件。为多种控件类型(Text,DropDown,CheckBox,RadioButton)重载OnChange事件的某种方法?

1 个答案:

答案 0 :(得分:0)

在表单的构造函数中,递归遍历其所有子控件(this.Controls),并为每个控件的ValueChanged事件添加(相同)回调方法。这将使其与表单上的每个控件相关联,无论将来对表单进行任何更改。

using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
     public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            foreach (Control c in this.Controls)
            {
                c.Validated += C_Validated;
            }
        }

        private void C_Validated(object sender, EventArgs e)
        {
        Debug.Print($"{sender.GetType().FullName} had Validated event called");
        }
    }
}