C4.0和VS2010新特性(15)
时间:2025-04-20
时间:2025-04-20
介绍VS2010的新特性等一些新功能
(三)中登出控件:
我们通常看到的登录页面往往是:如果匿名用户访问登录页面,应该出现登录的提示框(输入用户名、口令等信息),当成功登录之后该提示框出现“欢迎XXX登录”的字样,然后底下有一个按钮,
允许你注销。这个我们完全可以不写任何代码,直接通过拖拽控件实现: 除了刚才讲的登录控件之外,我们还需要三个控件:LoginView、LoginStatus和LoginName。
LoginView不直接使用,它包含两个模板:AnoymousTemplate和
LoggedTemplate(RoleGroupTemplate稍后在角色部分讲到)。我们通常把Login控件放在AnoymousTemplate中,在LoggedTemplate中放上一个LoginName(自动显示登录以后的名字),同时放上一个LoginStatus控件(默认LogOut状态),当用户点击之后再次成为匿名用户。
(一)“事件”与“委托”:
在“NET基本探究系列”委托的部分我们已经知道了委托的出现为不同类之间动态调用同参、同返回值的函数提供了便利。现在我们来进一步研究委托在实际开发中的例子——事件(event)。
我们只要是用NET开发的就一直不断在接触事件——举个最简单的例子就是你在WinForm上拉一个Button,然后双击就出现一个“事件函数”。这个“事件函数”的本质是和“事件”挂钩的。如果你查看InitializeComponent()这部分的代码,你会发现有这样一行东西:
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
……
this.button1.Click += new
System.EventHandler(this.button1_Click);
}
注意上述代码中黑色的部分:其中Click是一个Button的事件,而“+=”(VB中是AddressOf)类似于为Click事件指明触发函数(在本文件的button1_Click)。 如果你右键查看Click的定义,你会发现Button类的Click事件的定义:
public event EventHandler Click;
而如果你再“刨根问底”下去,会发现Click的类型是EventHandler,而这恰恰又是一个委托。正是因为“委托”具备不同类之间允许动态调用同参同返回值函数的功能,所以你在一个Form类上引入Button类(拖拽一个Button到上面),双击Button之后在Form类自身生成一个与Button事件委托同参同返回值的私有函数,同时把这个函数和事件使用
“+=”的形式挂接起来,完成了事件函数的初始化操作。至此,我们可以得出这样一个结论:
上一篇:量表简介总结
下一篇:协信中心商业项目提案