我想开始说这是家庭作业的一部分,但我不是要求任何代码。我必须创建一个抽象基类,包含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()方法创建类?我是否需要使用表单设计来引用它,或者它是表单设计的一部分,如果它是如何使它成为表单设计的一部分?对不起所有的问题,我知道答案可能很简单,但我的书和网上关于这一点的情况极少,我无法弄清楚我需要做些什么才能实现这一点。谢谢你的帮助!
答案 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编写测试。您测试控件绑定的业务逻辑。