这个问题分为两部分。
以下代码示例。
我的活动功能:
private void GeneralEventHandler(object sender, EventArgs e){
var senderHash = sender.GetHashCode();
if (senderHash == tbDatabase.GetHashCode())
Settings.DB.Default.Database = tbDatabase.Text;
else if (senderHash == tbSchema.GetHashCode())
Settings.DB.Default.Schema = tbSchema.Text;
}
我的对象定义:
// tbDatabase
/
this.tbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.tbDatabase.Location = new System.Drawing.Point(62, 3);
this.tbDatabase.Name = "tbDatabase";
this.tbDatabase.Size = new System.Drawing.Size(210, 20);
this.tbDatabase.TabIndex = 0;
this.tbDatabase.LostFocus += new System.EventHandler(this.GeneralEventHandler);
//
// tbSchema
//
this.tbSchema.Location = new System.Drawing.Point(55, 3);
this.tbSchema.Name = "tbSchema";
this.tbSchema.Size = new System.Drawing.Size(217, 20);
this.tbSchema.TabIndex = 1;
this.tbSchema.LostFocus += new System.EventHandler(this.GeneralEventHandler);
我主要只是用它来动态更新用户设置。我在退出时保存设置文件。
答案 0 :(得分:3)
我更喜欢让每个对象都有自己的事件处理程序。每个处理程序依次调用一个“做行为”的方法,而不知道是谁调用它。如果几个对象“做同样的事情”让他们调用相同的“do-it”方法。
你永远不知道未来会带来什么 - 现在组合事件处理程序的对象可能会在将来需要做的事情上分歧。