A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓艳秋 中级黑马   /  2012-10-6 22:57  /  2595 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们知道窗体有很多属性值,那可不可以把窗体看做是一个类呢?如果可以看做类,那这个类能不能被实例化呢?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

倒序浏览
  1.    private void InitializeComponent()
  2.         {
  3.             this.txtName1 = new System.Windows.Forms.TextBox();
  4.             this.txtName2 = new System.Windows.Forms.TextBox();
  5.             this.txtName3 = new System.Windows.Forms.TextBox();
  6.             this.label1 = new System.Windows.Forms.Label();
  7.             this.btn = new System.Windows.Forms.Button();
  8.             this.SuspendLayout();
  9.             //
  10.             // txtName1
复制代码
  1. // 摘要:
  2.     //     表示组成应用程序的用户界面的窗口或对话框。
  3.     [Designer("System.Windows.Forms.Design.FormDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(IRootDesigner))]
  4.     [ClassInterface(ClassInterfaceType.AutoDispatch)]
  5.     [ToolboxItemFilter("System.Windows.Forms.Control.TopLevel")]
  6.     [ToolboxItem(false)]
  7.     [DesignTimeVisible(false)]
  8.     [ComVisible(true)]
  9.     [DesignerCategory("Form")]
  10.     [DefaultEvent("Load")]
  11.     [InitializationEvent("Load")]
  12.     public class Form : ContainerControl
  13.     {
  14.         // 摘要:
  15.         //     初始化 System.Windows.Forms.Form 类的新实例。
  16.         public Form();

  17.         // 摘要:
  18.         //     获取或设置当用户按 Enter 键时所单击的窗体上的按钮。
  19.         //
  20.         // 返回结果:
  21.         //     System.Windows.Forms.IButtonControl,表示要用作窗体的“接受”按钮的按钮。
  22.         [SRDescription("FormAcceptButtonDescr")]
  23.         [DefaultValue("")]
  24.         public IButtonControl AcceptButton { get; set; }
  25.         //
  26.         // 摘要:
  27.         //     获取此应用程序的当前活动窗体。
  28.         //
  29.         // 返回结果:
  30.         //     System.Windows.Forms.Form,表示当前活动窗体,或者如果没有活动窗体,则为 null。
  31.         public static Form ActiveForm { get; }
  32.         //
  33.         // 摘要:
  34.         //     获取当前活动的多文档界面 (MDI) 子窗口。
  35.         //
  36.         // 返回结果:
  37.         //     返回表示当前活动的 MDI 子窗口的 System.Windows.Forms.Form,或者如果当前没有子窗口,则返回 null。
  38.         [SRDescription("FormActiveMDIChildDescr")]
  39.         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  40.         [Browsable(false)]
  41.         public Form ActiveMdiChild { get; }
  42.         //
  43.         // 摘要:
  44.         //     获取或设置一个值,该值指示能否调整窗体的不透明度。
  45.         //
  46.         // 返回结果:
  47.         //     如果可以更改窗体的不透明度,则为 true;否则为 false。
  48.         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  49.         [Browsable(false)]
  50.         [SRDescription("ControlAllowTransparencyDescr")]
  51.         public bool AllowTransparency { get; set; }
  52.         //
  53.         // 摘要:
  54.         //     获取或设置一个值,该值指示窗体是否调整其大小以适合该窗体上使用的字体高度,以及是否缩放其控件。
  55.         //
  56.         // 返回结果:
  57.         //     如果窗体根据分配给它的当前字体自动缩放本身及其控件,则为 true;否则,为 false。默认值为 true。
  58.         [SRDescription("FormAutoScaleDescr")]
  59.         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  60.         [EditorBrowsable(EditorBrowsableState.Never)]
  61.         [SRCategory("CatLayout")]
  62.         [Obsolete("This property has been deprecated. Use the AutoScaleMode property instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
  63.         [Browsable(false)]
  64.         public bool AutoScale { get; set; }
  65.         //
  66.         // 摘要:
  67.         //     获取或设置用于自动缩放窗体的基大小。
  68.         //
  69.         // 返回结果:
  70.         //     一种 System.Drawing.Size,表示此窗体用于自动缩放的基大小。
  71.         [EditorBrowsable(EditorBrowsableState.Never)]
  72.         [Localizable(true)]
  73.         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  74.         [Browsable(false)]
  75.         public virtual Size AutoScaleBaseSize { get; set; }
  76.         //
  77.         // 摘要:
  78.         //     获取或设置一个值,该值指示窗体是否实现自动滚动。
  79.         //
  80.         // 返回结果:
  81.         //     若要在窗体上启用自动滚动,为 true;否则,为 false。默认值为 false。
  82.         [Localizable(true)]
  83.         public override bool AutoScroll { get; set;
复制代码
本来就是类,你在添加控件时系统自动实例化,可以用F12查看代码,其中的(Name)就是实例名

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
using System;
using System.Windows.Forms;
using System.Drawing;
class MyForm:Form//自定义一个MyForm类从Form类继承
{
    public MyForm()
    {
        this.Text = "我的窗口";//设置窗口的标题
        this.Size=new Size(500,500);//设置窗口的大小
    }
    public static void Main()
    {
        Application.Run(new MyForm());//创建一个窗口对象,运行后就是我们见到的窗体。
    }
}
//所以我们可以知道,我们见到的实实在在的窗体是一个对象,它是窗口类的一个对象。窗口类是
//一个模版。所有和窗体相关的类都在System.Windows.Forms命名空间中。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
陈顺亮 发表于 2012-10-6 23:05
本来就是类,你在添加控件时系统自动实例化,可以用F12查看代码,其中的(Name)就是实例名 ...

正解。。为嘛提示我小于十个字符
回复 使用道具 举报
以前用记事本学习C#时候,就是手动写Winform程序的。不要被VS等工具给我们生成的一堆代码给搞糊涂了。分析一下工具生成的几个文件就把关系搞清楚了。一般主要有:MainForm.cs,MainForm.Designer.cs,Program.cs。MainForm.cs负责窗口类的定义,构造函数和触发事件的方法都在里面。构造函数里面有个InitializeComponent();是定义到MainForm.Designer.cs文件中的。我们可以看到许多类似this.Text = "鼠标事件练习";this.Load += new System.EventHandler(this.MainFormLoad);的东西,第一个是对窗口Text属性的设置,第二个是对Load事件的注册。Program.cs中就定义了一个Program类,主要是Main方法了,这个就是程序的入口,和控制台程序一样。Main函数里调用Application.Run(new MainForm());来实例化一个MainForm对象,并启动。工具给我们生成的是用两个类:MainForm类和Program类来实现。其实也可以把Main函数放到MainForm这个类中,用一个类实现就可以了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马