gpt4 book ai didi

c# - 使用 WinForms 组织

转载 作者:太空狗 更新时间:2023-10-29 23:01:12 27 4
gpt4 key购买 nike

所以我刚刚开始开发 C# WinForm 应用程序,我从事的每个项目似乎都更大并且需要更多的用户功能。如果我将所有功能添加到一个表单中,显然它很快就会失控。在我的最后一个项目中,我会将功能划分为单独的表单,每当有人说要执行“Feature1”时,我都会实例化 Feature1 表单并将其显示为与主表单所有者的对话框(这样他们就无法单击它).

我很好奇还有哪些其他方法可以使代码在 Form 中保持井井有条。如果您被迫在一个表单上拥有大量特性/功能,是否有一种让项目井井有条的好方法?我只是讨厌拥有数百/数千行长的代码文件。

答案可能只是在设计中,尝试预先设计 UI 以便您可以利用多种形式?

我遇到的另一个例子。我创建了一个选项卡控件并有大约 5 个选项卡。这 5 个选项卡具有大量功能,并且都存储在同一个 CS 文件中。我还有哪些其他选择?创建一个新的自定义 TabControl 类,其中包含该选项卡的特定功能?

我不介意阅读,所以如果有不错的文章,请随意链接它们!

最佳答案

go-to 方法是 Controller/Presenter。这个想法是窗口应该只负责实际处理其控件的 UI 事件,它应该通过调用 Controller 上的方法来完成,这些方法为窗口做实际工作。窗口可以具有必要的处理程序,也可以将 UI 事件直接链接到 Controller 方法;前者通常是更简单的方法,但是在这里或那里潜入一行真正应该在 Controller 方法中的代码可能很诱人。通过这样做,您可以将 Form 类中的布局和表示逻辑与 Controller 中的业务逻辑分开。

Mark Hall 关于用户控件的建议也是一个很好的建议。通过为选项卡或常见的 UI 控件组合创建 UserControl 类,您可以从主窗体的代码中切断负责 UI 的那部分布局的逻辑,然后该控件只是“插入”并且窗口以更广泛的方式使用它更简单的方法。这是实现自定义但可重用控件的必要条件; DRY 的基本原则是,如果您在两个不同的地方有两行代码对两个不同但可互换的事物执行相同的工作,则应将这些代码行合并到一个地方。

关于c# - 使用 WinForms 组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12046092/

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