快速业务通道

使用C++的托管扩展针对Windows窗体编程

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30
this->ResumeLayout(false);
}

请注意,上面的代码同样与您以前生成的代码很类似,但它们是由设计器创建的。不幸的是,要使这一进程能够可靠地运行,设计器需要能够完全控制 InitializeComponent 方法。事实上,您可以看到向导生成的 InitializeComponent 代码包装在一个区域中(默认情况下将隐藏代码),并标记了说明性的注释:

/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.

这可能看上去像是您首选的编程语言,但 InitializeComponent 实际上是设计器用于管理设计图面的对象模型的序列化形式。虽然您可以对这些代码进行某些细微的更改,如更改新按钮的 Text 属性,但是重大的更改可能会被忽略,甚至被删除。我们建议您将自定义窗体初始化放入窗体的构造函数中对 InitializeComponent 的调用之后,以确保设计器不会破坏您的代码。

当然,设计器所带来的好处抵消了它的这种对代码的侵犯。例如,您无须通过编写多行代码来设置窗体或它所包含的控件的属性,只需要右键单击所需的对象并选择 Properties(或按下 F4)来调出选定对象的属性浏览器。

所有非默认的属性(表示为以粗体显示的值)都会为您写入 InitializeComponent 方法,您无须再编写这些代码。与此类似,要选择窗体或窗体的控件的事件以进行处理,可以单击属性浏览器窗口顶部的 Events 闪电形图标。

在属性浏览器窗口中,可以以多种方式实现事件的处理。一种方法是通过单击和键入在激发事件时要调用的函数的名称来找出要处理的选定对象的事件,如 button_Click。在输入事件处理程序的名称后按 Enter,将把您带到具有该名称和正确的签名的事件处理程序的正文,您可以立即着手实现:

private: System::Void button_Click(Object* sender, EventArgs* e)
{
}

如果您像一般情况下一样希望为各个对象处理的各个事件是唯一的,或者您不关心处理程序的名称,只需在属性浏览器中双击该事件的名称,就会根据控件和事件的名称为您生成一个事件处理程序名称。例如,如果在 Form 1 窗体的 Load 事件上双击,事件处理程序名称将为 Form1_Load。

此外,如果您要处理对象的默认事件,只需双击对象本身就可以进行处理 - 这样会像您双击属性浏览器事件列表中的事件名称一样生成一个事件处理程序名称。对象的默认事件指的是直观上特定类型最常处理的事件。例如,按钮的默认事件为 Click,窗体的默认事件为 Load。不幸的是,设计器和属性浏览器都没有提示特定类型的默认事件是什么,但是实践中通常不会由多少例外情形。

安排控件

设计器的好处在于您可以在窗体内安排控件的布局,确保整齐地排列所有的元素(如图 1 所示),而不像大小被调整时的状态(如图 2 所示)。

使用C++的托管扩展针对Windows窗体编程

图 1 理想大小且整齐布局的窗体

使用C++的托管扩展针对Windows窗体编程

图 2 整齐布局的窗体大小被调整

用户调整窗体大小不是为了能有更多灰色的空间,他们是为了能够有更多空间用于将数据输入控件中。要达到这一目的,需要重新调整控件的大小,以占据新的可用空间。这可以通过处理窗体的 Resize 事件并编写代码来手动完成。或者,也可以通过定位 来实现。

定位是 Windows 窗体为了对窗体和窗体所包含的控件进行自动布局控制而提供的一种方法。默认情况下,所有的控件都定位到左上方,这样,在调整窗体的大小并移动时,所有的控件都将相对于窗体左上角保持它们的位置。但是,在本例中,最好在调整窗体大小时加宽或缩窄文本框控件。这可以通过设置各个文本框的 Anchor 属性来实现。显示控件的属性浏览器并选择 Anchor 属性,将显示如图 3 所示的编辑器。

使用C++的托管扩展针对Windows窗体编程

图 3 设置 Anchor 属性

要将文本框更改为定位到右边缘以及上边缘和左边缘,只需要单击右侧的定位框,然后将 Anchor 属性更改为

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号