0

我想开始说这是家庭作业的一部分,但我不要求任何代码。我必须创建一个抽象基类,它有 2 个子类,包括一个虚拟方法和一个接口。我已经制作了所有的类和界面,但我一直在创建一个类来测试 GUI。我已经引用了所有带有子类和接口的类库,但我的书在示例中还有另一个名为 PresentationGUI.cs 的类。我已经在表单之前创建了类,但不知道如何实现这个类以与表单“工作”,我已将演示类设置为启动项目,但不知道如何使其与 Windows 窗体通信设计师代码。在本书的演示类中,生成了 Windows 窗体代码以及对不同类的命名空间的引用,在这个演示类中,以及部分子类中,但我不知道如何实现这一点。书中的代码是这样的(为了节省时间我把它缩短了):

01  using System;                //// I get an error if I type this in
02  using System.Drawing;
03  using System.Collections.Generic;
04  using System.ComponentModel; 
05  using System.Windows.Forms;
06  using System.Data;
07  using ClubNamespace;       //// to reference the subclasses
08  using IntermuralNamespace;
09   
10  namespace PresentationGUI 
11  {
12  public class PresentationGUI : System.Windows.Forms.Form
13  {
14  private Club aClub;
15  private Intermural aIntermural;
16  private System.Windows.Forms.GroupBox groupbox1;
17  private System.Windows.Forms.Label label1;
18  //// and other Windows.Forms object oriented buttons and so-forth
19   
20  public PresentationGUI ()
21  {
22  Initialize Component ();
23  }
24  /// #Windows Designer Code to add controls
25  static void Main()
26  {
27  Application.Run(new PresentationGUI());
28  }
29  private void Presentation_Load(object sender, System.EventArgs e)
30  {
31  aClub = new Club ("ACM", "Jones", "Davis 203", "Tuesday");
32  aIntermural = new Intermural ("Winners", "Joe Smith", "Gym 3", "VolleyBall")
33  }

我的导师说,通过创建 PresentationGUI 类并将其设置为启动,在向表单添加控件之前将创建私有 Systems.Windows.Forms.Label label1; 到班级本身,但是当我创建班级时不会发生这种情况。在将 PresentationGUI 类设为启动项目后,我什至添加了子类作为对它的引用,甚至接口,我在上面的代码中省略了它(我使用了书中未使用接口的确切代码)。这是否与在顶部添加 using System 部分有关,还是我必须自己添加私有 Windows.Forms 部分才能引用控件?或者我需要以不同的方式创建 PresentationGUI 类库吗?如何使用 Initialize Component() 和 Main() 方法创建一个类?我是否需要在表单设计中引用它,或者它是表单设计的一部分,如果它是我如何使它成为表单设计的一部分?抱歉所有问题,我知道答案可能很简单,但是在我的书和在线上关于这个的内容非常少,我不知道我需要做什么来实现这个。谢谢你的帮助!

4

1 回答 1

2

欢迎来到 StackOverflow,这是一个相当大的问题,通常需要将它们分解,但我想我知道这本书让你感到困惑,我相信你会在再次发布之前阅读常见问题解答。

“我如何使用 Initialize Component() 和 Main() 方法创建一个类?我是否需要在表单设计中引用它,或者它是表单设计的一部分,如果它是我如何使它成为的一部分表单设计?”

表单也是类,它们只是派生自 System.Windows.Form。听起来您只是在创建普通类(右键单击项目并选择 Add New Item > Windows Form not a normal class)

新建Project > Winforms > 将Form1重命名为PresentationGUI,在查看表单设计器的同时,展开控件的ToolBox,将GroupBox控件拖到表单和Label控件上。

右键单击 PresentationGUI 表单 > 查看代码。你会看到它在类构造函数中有这个方法::

InitializeComponent();

右键单击此方法名称并选择 Goto Definition(或 F12),您将在此处看到 Form Designer 代码 - 这是通过将控件拖动到表单表面上生成的。

右键单击 program.cs 文件 > 查看代码 > 它将具有:

static void Main()
{
Application.Run(new PresentationGUI());
}

您拥有的那本书将所有这些知识放在一起(不使用设计器生成的代码的部分类)。

最后在您的 PresentationGUI 表单代码中,放入 Form_Load 事件:

private void PresentationGUI_Load(object sender, System.EventArgs e)
{
aClub = new Club ("ACM", "Jones", "Davis 203", "Tuesday");
aIntermural = new Intermural ("Winners", "Joe Smith", "Gym 3", "VolleyBall")
}

我更喜欢使用属性窗口向表单和控件添加事件,例如:打开 PresentationGUI n 设计视图,按 F4,在属性窗口中您会看到一个闪电按钮,这显示了您可以添加到表单的所有事件或您选择的控件。

关于将控件连接到类,有 2 个子类,包括一个虚拟方法和一个接口,您使用 Binding。例如 ListBox1.DataSource = BusObjectTier.aClub;

关于问题的主要标题I am stuck in creating a class to test the GUI

使用绑定,这样您就不需要为 GUI 编写测试。您测试控件绑定到的业务逻辑。

于 2012-05-12T04:12:59.267 回答