我很喜欢自己在这里的一个角落。在C#中继承事件处理程序#
我有一系列的UserControl继承自一个父级,它包含一些方法和事件来简化事情,所以我不必写行和几乎相同的代码行。像你一样做。父级不包含其他控件。
我想要做的只是在父UserControl中有一个事件处理程序,它去做只有父控件才能做的事情(即有条件地调用一个事件,因为事件在父级中定义) 。然后,我会将此事件处理程序连接到我的子控件中的所有输入框,并且子控件将排除解析输入并告知父控件是否抛出该事件的任务。不错,干净,没有重复,复制粘贴代码(对我来说总是会导致错误)。
这是我的问题。 Visual Studio认为我太聪明了一半,并警告说“方法'CheckReadiness'[父项中的事件处理程序]不能成为事件的方法,因为这个类派生出来的类已经定义了该方法。”是的,Visual Studio,这就是要点。我想想要有一个事件处理程序,它只处理子类抛出的事件,它的唯一工作就是使我能够连接子程序而不必编写一行代码。我不需要那些额外的处理程序 - 我需要的所有功能自然就是在儿童处理用户输入时调用的。
我不知道为什么Visual Studio现在开始抱怨这件事(因为它让我这么做),我不知道如何让它消失。最好,我想这样做,而不必定义一个只调用CheckReadiness的方法。是什么引起了这个警告,是什么导致它在不是一个小时之前就出现了,我怎样才能让它消失,而不是在所有的子类中做出小小的处理程序?
这将解决这个问题,但我希望避免基本上是空的错误处理程序,因此我的问题。 – Merus 2008-09-18 07:11:33