【问题标题】:C# Multi-form coding practice [closed]C#多形式编码实践[关闭]
【发布时间】:2017-04-01 21:03:31
【问题描述】:

我的问题是,一般来说,拥有一个多形式的程序是允许和可维护的。更具体地说,在 C# 中,让按钮转到另一个表单是一种好习惯(每个按钮都在一个单独的类中)。这是一个例子: (在这个例子中,我创建了一个程序员参考应用程序,我需要从一个页面到另一个页面收集来自网络的信息并将其放在应用程序上以供快速参考)

主要形式:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ProgramersReference
{
public partial class main : Form
{
    public main()
    {
        InitializeComponent();
    }

    //About button click
    private void btnAbout_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Author: anon \n"
            +"Version Number: 00.00.01 \n"
            ,"Information");    //Version Key quickreference: 00(high profile change).00(Medium profile change).00(low profile change)
    }

    private void btnWebsites_Click(object sender, EventArgs e)
    {
        websiteForm websiteFormObj = new websiteForm();
        websiteFormObj.Show();
    }
 }
}

第二种形式(在不同的类别中):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ProgramersReference
{
  public partial class websiteForm : Form
   {
    public websiteForm()
    {
        InitializeComponent();
    }
   }
}

如果这不是一个好方法,您能回答什么是更好的方法,选项卡控制是更好的方法,还是使用面板显示和隐藏应用程序中的新内容?

【问题讨论】:

  • 我认为这是关于样式布局的个人意见。它实际上取决于您要创建的程序。你可以试试像 VisualStudio 这样的可停靠窗口:dockpanelsuite.com.
  • @TimonPost 但是就未来的可维护性而言,将每个按钮放在不同的类中并将同一个按钮映射到另一个表单是否是一种好习惯?感谢您的评论。
  • 我很久以前就尝试过使用带有用户控件的面板。请注意,您应该注意事件处理程序。否则会耗尽内存。对我来说,使用选项卡式文档更干净,但对于干净的代码,请尝试为每个选项卡创建不同的类。
  • 尝试阅读之前的MVP模式。从发布的代码中,您正在使用 winforms。
  • @AdrianStanculescu 感谢您的回复。

标签: c# maintainability


【解决方案1】:

看看大型节目。 Steam 是否为每个操作使用新窗口。 Visual Studio 是否为每个操作使用了很多新窗口。它们都使用不同页面的选项卡。如果这样做会变得非常混乱。

创建弹出窗口的原因是为了从用户那里获得一些输入。例如:

  1. 保存文件
  2. 打开文件
  3. 在 Visual Studio 中创建一个新类。
  4. 更改设置。

所有这些弹出窗口都是在程序想要在不干扰主布局和程序目标的情况下进行一些输入时创建的。这些窗口也会很快关闭。

因此,只有在用户提供一些输入后它们会迅速消失时才创建弹出窗口。并将程序的主要功能放在选项卡中。

【讨论】:

  • 我明白了一点,谢谢 timon。
【解决方案2】:

我总体上同意 Timon 所说的,但这始终取决于您要达到的目标。编程是一个创造性的过程,规则应该被视为指导方针。如果您的应用程序更适合使用选项卡,请使用选项卡,如果它更适合使用表单,请使用表单。如果您为客户编写此应用程序,请与他们讨论该问题。至于最佳实践,我认为这两个选项都没有问题。

希望我的胡言乱语有所帮助 丹尼

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2010-09-27
    • 1970-01-01
    相关资源
    最近更新 更多