我有点把自己逼到了一个角落。
我有一系列从父级继承的用户控件,其中包含几个方法和事件来简化事情,因此我不必编写几行几乎相同的代码。像你一样做。父级不包含其他控件。
我想要做的只是在父 UserControl 中有一个事件处理程序,它会执行只有父控件才能执行的操作(即,有条件地调用事件,因为事件在父控件中定义)。然后我将这个事件处理程序连接到我的子控件中的所有输入框,子控件将整理解析输入并告诉父控件是否抛出该事件的任务。漂亮干净,没有重复的复制粘贴代码(对我来说总是会导致错误)。
这是我的问题。Visual Studio 认为我太聪明了一半,并警告我“方法'CheckReadiness' [父级中的事件处理程序] 不能成为事件的方法,因为该类派生的类已经定义了该方法。” 是的,Visual Studio,这就是重点。我想要一个事件处理程序,它只处理子类抛出的事件,它唯一的工作是让我能够在不编写任何代码的情况下连接子类。我不需要那些额外的处理程序——当孩子们处理用户输入时,我需要的所有功能自然会被调用。
我不确定为什么 Visual Studio 现在开始抱怨这个(因为它让我以前这样做过),而且我不知道如何让它消失。最好,我想这样做,而不必定义一个只调用 CheckReadiness 的方法。是什么导致了这个警告,是什么导致它在一个小时前没有出现的时候出现,我怎样才能让它消失而不诉诸于在所有子类中制作小处理程序?