我有一个WinForm应用程序,它有5个窗体。从主窗体中有三个按钮,每个按钮加载一个具有基本相同设计和布局的窗体。为此,我创建了一个基本窗体,这些窗体将继承。
每个子窗体都将有一个LoadData按钮,该按钮将从基窗体继承。我试图做的是在该基窗体上调用该按钮的click事件,并根据正在使用的子窗体执行不同的方法。而不是在每个窗体上都有特定于窗体的click事件。
所以本质上我想在儿童形态中做一些类似的事情。但我不知道怎么做。我读到的所有东西都让我困惑。
protected override BaseFormOnClick()
{
LoadDataSet1
}
我也希望能够继承拖放事件,这是在基础形式。我猜我需要订阅它,但我似乎不能得到它的工作。所以这样的东西。
public DerivedForm() : base()
{
base.Drag_Drop_Event(EventArgs.Empty)
}
刚刚开始看事件处理程序和委托,所以任何帮助都将不胜感激。
2条答案
按热度按时间nc1teljy1#
请将您的问题帖子限制为一次一个问题。
对于第一个,它应该像在基类中声明一样简单:
然后在每个派生类中,重写它:
只需在基类本身中订阅按钮的
Click
事件的基类方法。例如:理论上,您应该能够创建基类方法
abstract
而不是virtual
,但我不确定Winforms Designer是否能够很好地容纳这样的抽象基类。与虚方法一样,如果您希望基类在单击按钮时也执行某些操作,则需要坚持使用
virtual
,并在派生类实现中包含对base.button1_Click(sender, e);
的调用。老实说,我相信有一个问题的答案已经在网站上,解决这个问题,但我的生活,我找不到它。
如果你在从简单的按钮案例推断如何处理拖放操作时遇到困难,请将其作为一个单独的问题提出,展示一个最小的、完整的例子,说明你目前为止所拥有的,并解释你具体需要帮助的地方。
xqk2d5yq2#