黑马程序员技术交流社区
标题:
关于窗体的实例化。
[打印本页]
作者:
邓艳秋
时间:
2012-10-6 22:57
标题:
关于窗体的实例化。
我们知道窗体有很多属性值,那可不可以把窗体看做是一个类呢?如果可以看做类,那这个类能不能被实例化呢?
作者:
陈顺亮
时间:
2012-10-6 23:05
private void InitializeComponent()
{
this.txtName1 = new System.Windows.Forms.TextBox();
this.txtName2 = new System.Windows.Forms.TextBox();
this.txtName3 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.btn = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// txtName1
复制代码
// 摘要:
// 表示组成应用程序的用户界面的窗口或对话框。
[Designer("System.Windows.Forms.Design.FormDocumentDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(IRootDesigner))]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
[ToolboxItemFilter("System.Windows.Forms.Control.TopLevel")]
[ToolboxItem(false)]
[DesignTimeVisible(false)]
[ComVisible(true)]
[DesignerCategory("Form")]
[DefaultEvent("Load")]
[InitializationEvent("Load")]
public class Form : ContainerControl
{
// 摘要:
// 初始化 System.Windows.Forms.Form 类的新实例。
public Form();
// 摘要:
// 获取或设置当用户按 Enter 键时所单击的窗体上的按钮。
//
// 返回结果:
// System.Windows.Forms.IButtonControl,表示要用作窗体的“接受”按钮的按钮。
[SRDescription("FormAcceptButtonDescr")]
[DefaultValue("")]
public IButtonControl AcceptButton { get; set; }
//
// 摘要:
// 获取此应用程序的当前活动窗体。
//
// 返回结果:
// System.Windows.Forms.Form,表示当前活动窗体,或者如果没有活动窗体,则为 null。
public static Form ActiveForm { get; }
//
// 摘要:
// 获取当前活动的多文档界面 (MDI) 子窗口。
//
// 返回结果:
// 返回表示当前活动的 MDI 子窗口的 System.Windows.Forms.Form,或者如果当前没有子窗口,则返回 null。
[SRDescription("FormActiveMDIChildDescr")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Form ActiveMdiChild { get; }
//
// 摘要:
// 获取或设置一个值,该值指示能否调整窗体的不透明度。
//
// 返回结果:
// 如果可以更改窗体的不透明度,则为 true;否则为 false。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
[SRDescription("ControlAllowTransparencyDescr")]
public bool AllowTransparency { get; set; }
//
// 摘要:
// 获取或设置一个值,该值指示窗体是否调整其大小以适合该窗体上使用的字体高度,以及是否缩放其控件。
//
// 返回结果:
// 如果窗体根据分配给它的当前字体自动缩放本身及其控件,则为 true;否则,为 false。默认值为 true。
[SRDescription("FormAutoScaleDescr")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[EditorBrowsable(EditorBrowsableState.Never)]
[SRCategory("CatLayout")]
[Obsolete("This property has been deprecated. Use the AutoScaleMode property instead. http://go.microsoft.com/fwlink/?linkid=14202")]
[Browsable(false)]
public bool AutoScale { get; set; }
//
// 摘要:
// 获取或设置用于自动缩放窗体的基大小。
//
// 返回结果:
// 一种 System.Drawing.Size,表示此窗体用于自动缩放的基大小。
[EditorBrowsable(EditorBrowsableState.Never)]
[Localizable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public virtual Size AutoScaleBaseSize { get; set; }
//
// 摘要:
// 获取或设置一个值,该值指示窗体是否实现自动滚动。
//
// 返回结果:
// 若要在窗体上启用自动滚动,为 true;否则,为 false。默认值为 false。
[Localizable(true)]
public override bool AutoScroll { get; set;
复制代码
本来就是类,你在添加控件时系统自动实例化,可以用F12查看代码,其中的(Name)就是实例名
作者:
秦敖
时间:
2012-10-6 23:24
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命名空间中。
作者:
管海鹏
时间:
2012-10-6 23:34
陈顺亮 发表于 2012-10-6 23:05
本来就是类,你在添加控件时系统自动实例化,可以用F12查看代码,其中的(Name)就是实例名 ...
正解。。为嘛提示我小于十个字符
作者:
秦敖
时间:
2012-10-6 23:48
以前用记事本学习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这个类中,用一个类实现就可以了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2