包含和测试gui的类库

时间:2012-05-12 01:11:37

标签: c#

我想开始说这是家庭作业的一部分,但我不是要求任何代码。我必须创建一个抽象基类,包含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类的引用,我在上面的代码中省略了它(我使用了本书中没有使用接口的确切代码)。这是否与在顶部添加使用系统部分有关,或者我是否必须自己添加私有Windows.Forms部分来引用控件?或者我需要一种不同的方式来创建PresentationGUI类库?如何使用Initialize Component()和Main()方法创建类?我是否需要使用表单设计来引用它,或者它是表单设计的一部分,如果它是如何使它成为表单设计的一部分?对不起所有的问题,我知道答案可能很简单,但我的书和网上关于这一点的情况极少,我无法弄清楚我需要做些什么才能实现这一点。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

欢迎来到StackOverflow,这是一个非常大的问题,通常它们需要被分解,但我想我知道这本书让你感到困惑,我相信你会在再次发帖之前阅读FAQ。 / p>

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

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

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

右键单击PresentationGUI表格>查看代码。您将在类构造函数::

中看到它具有此方法
InitializeComponent();

右键单击此方法名称并选择Goto Definition(或F12),您将看到表单设计器代码 - 您将控件拖到表单表面上生成的代码。

右键单击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编写测试。您测试控件绑定的业务逻辑。