gpt4 book ai didi

c# - 如果将其名称作为参数传递,如何在方法中打开表单

转载 作者:行者123 更新时间:2023-11-30 14:33:23 26 4
gpt4 key购买 nike

我正在尝试创建一个标准方法来根据传递给它的参数打开一个表单。基本上,要完成此操作:

using (Quotes newQte = new Quotes())
{
newQte.ShowDialog();
}

通过替换:

Quotes with a passed parameter, e.g. FormToOpen.

这有可能吗?

最佳答案

可以使用“Factory Method”来做到这一点。

您可以像这样定义 FormToOpen(为清楚起见,我将其重命名为 createForm()):

Func<Form> createForm;

所以代码看起来像这样:

private void MakeAndDisplayForm(Func<Form> createForm)
{
using (var form = createForm())
{
form.ShowDialog();
}
}

你可以这样调用它:

MakeAndDisplayForm(() => new MyForm());

MyForm 是您希望 MakeAndDisplayForm() 创建的表单类型。

做这种事很常见;通常您将创建者函数传递给类的构造函数。然后该类稍后使用创建者函数来创建它可以使用的东西,而不知道它们是如何创建的。

这是 Depencency Injection 的一种形式.

(免责声明:为简洁起见省略了所有错误检查)

关于c# - 如果将其名称作为参数传递,如何在方法中打开表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16639777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com