下午好!我哪一天受苦,你能告诉我吗?
主窗体有一个功能
public void MessageReader(string Name)
{ .... }
在用户控件中:
private void UsersBox_Click(object sender, EventArgs e)
{
//MessageReader("Name"); - так вызвать метод не получается.
}
我在谷歌上搜索,但到目前为止我还没有找到答案......它是如何正确的?
谢谢!
在
UserControl-e:形状为:
像这样是正确的:
如果使用 C#6,甚至更短
在 WinForms 中,默认情况下每个控件都有一个指向父容器的链接。唯一的例外是形式,即使如此也不总是如此。当一个控件被添加到另一个控件的子控件集合中时,父控件会自动输入。反之亦然,你可以指定一个parent,控件会自动放入parent的子控件集合中。
在上面的代码中,一切都很简单,我们检查我们需要的类型的父级并调用该方法,否则我们什么都不做,因为不是每个表单都有您描述的方法。当然,你的控件应该直接放在窗体上,没有中间面板、表格和其他容器。
如果需要中间容器,那么可以选择下一个答案中的选项,或者我们将架构更改为更灵活、更不反复无常的架构。